{"id":808,"date":"2023-12-04T21:15:53","date_gmt":"2023-12-04T12:15:53","guid":{"rendered":"https:\/\/www.aqua-informatics.jp\/?p=808"},"modified":"2023-12-05T09:00:34","modified_gmt":"2023-12-05T00:00:34","slug":"%e6%9c%88%e5%88%9d%e3%81%ae%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88","status":"publish","type":"post","link":"https:\/\/www.aqua-informatics.jp\/?p=808","title":{"rendered":"\u6708\u521d\u306e\u30b9\u30af\u30ea\u30d7\u30c8"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\" >\u306f\u3058\u3081\u306b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#motion%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" >motion\u306b\u3064\u3044\u3066<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E6%A7%8B%E6%88%90\" >\u30d5\u30a9\u30eb\u30c0\u69cb\u6210<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#%E6%97%A5%E6%AF%8E%E3%81%AE%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88\" >\u65e5\u6bce\u306e\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#%E6%9C%88%E5%88%9D%E3%81%AE%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88\" >\u6708\u521d\u306e\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#%E9%81%8B%E7%94%A8\" >\u904b\u7528<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.aqua-informatics.jp\/?p=808\/#%E3%81%BE%E3%81%A8%E3%82%81\" >\u307e\u3068\u3081<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\"><\/span>\u306f\u3058\u3081\u306b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Raspberry Pi\u306b\u63a5\u7d9a\u3057\u305f\u30ab\u30e1\u30e9\u3068motion\u3092\u4f7f\u7528\u3057\u3066\u3001\u52d5\u4f53\u691c\u51fa\u3001\u305d\u306e\u753b\u50cf\u3092\u30d5\u30a1\u30a4\u30eb\u5171\u6709\u5148\u306eUbuntu PC\u306b\u4fdd\u5b58\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u308b\u3002\u3053\u308c\u3092\u6708\u521d\u306bffmpeg\u3092\u5229\u7528\u3057\u3066\u3001\u52d5\u753b\u5316\u3057\u3066\u5e74\u5ea6\u3054\u3068\u306e\u30d5\u30a9\u30eb\u30c0\u306b\u4fdd\u5b58\u3059\u308b\u3002\u3053\u308c\u3092\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u81ea\u52d5\u5316\u3057\u3066\u3044\u308b\u3002\u9577\u3044\u3082\u306e\u3067\u30012020\u5e74\u672b\u301c2021\u5e74\u304b\u3089\u904b\u7528\u3057\u3066\u3044\u308b\u3082\u306e\u3082\u3042\u308b\u3002(\u9014\u4e2d\u3001\u30ab\u30e1\u30e9\u306e\u6545\u969c\u3067\u4ea4\u63db\u3057\u305f\u3082\u306e\u3082\u3042\u3063\u305f\u3068\u601d\u3046\u3002)<\/p>\n\n\n\n<p>2023\u5e7410\u6708\u5206\u306e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u6570\u304c\u30b7\u30a7\u30eb\u3067\u53d6\u308a\u6271\u3048\u308b\u9650\u754c\u3092\u8d85\u3048\u305f\u3088\u3046\u3067\u3001\u52d5\u4f5c\u3057\u306a\u304b\u3063\u305f\u3002\u305d\u3053\u3067\u3001\u65e5\u6bce\u306b\u30e0\u30fc\u30d3\u30fc\u3092\u4f5c\u6210\u3057\u3001\u6708\u521d\u306b\u3072\u3068\u6708\u5206\u306e\u65e5\u6bce\u30e0\u30fc\u30d3\u30fc\u3092\u7d71\u5408\u3059\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u305f\u306e\u3067\u305d\u306e\u8a73\u7d30\u3092\u307e\u3068\u3081\u3066\u307f\u305f\u3002<\/p>\n\n\n\n<p>\u73fe\u5728\u30ab\u30e1\u30e9\u306f5\u53f0\u3067Raspberry Pi Zero\u306b\u63a5\u7d9a\u3055\u308c\u52d5\u4f53\u3092\u76e3\u8996\u4e2d\u3002\u03b3\u3001\u03b7\u3001\u03b8\u306f\u505c\u6b62\u4e2d\u3002\u03b9\u3001\u03ba\u3092\u6e96\u5099\u4e2d\u3067\u3042\u308b\u3002\u30ab\u30e1\u30e9\u306f\u306a\u3044\u304c\u3001\u4e5d\u5dde\u5730\u65b9\u306b\u03bb\u304c\u7a3c\u50cd\u3057\u3066\u304a\u308a\u3001\u74b0\u5883\u30c7\u30fc\u30bf\u3092\u30b5\u30fc\u30d0\u30fc\u306b\u9001\u4fe1\u4e2d\u30021\u5e74\u3092\u8d85\u3048\u3066\u7d99\u7d9a\u904b\u7528\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>\u307e\u305f\u3001\u7c21\u5358\u306ahtml\u3092\u4f5c\u6210\u3057\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u30ab\u30e1\u30e9\u306e\u6620\u50cf\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"817\" src=\"https:\/\/www.aqua-informatics.jp\/wp-content\/uploads\/2023\/12\/image-1024x817.png\" alt=\"\" class=\"wp-image-814\" style=\"width:738px;height:auto\" srcset=\"https:\/\/www.aqua-informatics.jp\/wp-content\/uploads\/2023\/12\/image-1024x817.png 1024w, https:\/\/www.aqua-informatics.jp\/wp-content\/uploads\/2023\/12\/image-300x239.png 300w, https:\/\/www.aqua-informatics.jp\/wp-content\/uploads\/2023\/12\/image-768x613.png 768w, https:\/\/www.aqua-informatics.jp\/wp-content\/uploads\/2023\/12\/image.png 1230w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"motion%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\"><\/span>motion\u306b\u3064\u3044\u3066<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>motion\u306f\u3001\u3055\u307e\u3056\u307e\u306a\u30ab\u30e1\u30e9\u304b\u3089\u306e\u30d3\u30c7\u30aa\u4fe1\u53f7\u3092\u76e3\u8996\u3057\u3001\u52d5\u4f53\u691c\u51fa\u3055\u308c\u305f\u3068\u304d\u306b\u8a2d\u5b9a\u306b\u5fdc\u3058\u305f\u52d5\u4f5c\u3092\u5b9f\u884c\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3059\u3002\u3053\u306e\u30d6\u30ed\u30b0\u3092\u66f8\u304f\u969b\u306bmotion\u306e<a href=\"https:\/\/motion-project.github.io\/index.html\">\u30db\u30fc\u30e0\u30da\u30fc\u30b8<\/a>\u3092\u8a2a\u308c\u305f\u3068\u3053\u308d\u3001\u65b0\u3057\u304fmotion plus\u304c\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3060\u3002\u65e7motion\u306f2000\u5e74\u306b\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3001\u53e4\u304f\u306a\u3063\u305f\u6a5f\u80fd\u3001\u307b\u3068\u3093\u3069\u4f7f\u308f\u308c\u306a\u3044\u6a5f\u80fd\u3092\u524a\u9664\u3057\u305f\u65b0\u3057\u3044\u30d7\u30ed\u30b0\u30e9\u30e0\u304cmotion plus\u306e\u3088\u3046\u3060\u3002<br>\u8fd1\u3044\u3046\u3061\u306b\u4f7f\u3063\u3066\u307f\u3088\u3046\u3002<\/p>\n\n\n\n<p>motion\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u6a5f\u80fd<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create videos or save pictures of the activity<\/li>\n\n\n\n<li>Passthrough recording from many IP cameras<\/li>\n\n\n\n<li>View live stream of cameras<\/li>\n\n\n\n<li>Invoke scripts when activities occur<\/li>\n\n\n\n<li>Log activity into multiple types of databases<\/li>\n\n\n\n<li>Fully customizable masks for privacy or motion detection<\/li>\n\n\n\n<li>Full tls(https) support with authentication for webcontrol and streams<\/li>\n<\/ul>\n\n\n\n<p>\u69d8\u3005\u306a\u30bf\u30a4\u30d7\u306e\u30ab\u30e1\u30e9\u304c\u4f7f\u7528\u53ef\u80fd<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Network cameras via RTSP, RTMP and HTTP<\/li>\n\n\n\n<li>PI cameras<\/li>\n\n\n\n<li>V4L2 webcams<\/li>\n\n\n\n<li>Video capture cards<\/li>\n\n\n\n<li>Existing movie files<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E6%A7%8B%E6%88%90\"><\/span>\u30d5\u30a9\u30eb\u30c0\u69cb\u6210<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u30b5\u30fc\u30d0\u30fc\u5074\u306ePictures\u30d5\u30a9\u30eb\u30c0\u306b\u5404Raspberry Pi\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3066\u3042\u308a\u3001\u5404Raspberry Pi\u5074\u306ePictures\u30d5\u30a9\u30eb\u30c0\u306b\u30de\u30a6\u30f3\u30c8\u3057\u3066\u3042\u308b\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>$ ll\n\u5408\u8a08 46704\ndrwxr-xr-x 21 kimi kimi     4096 11\u6708 30 22:19  .\/\ndrwxr-xr-x 49 kimi kimi     4096 12\u6708  4 16:57  ..\/\n-rw-rw-r--  1 kimi kimi        0  4\u6708  5  2022  .trackerignore\ndrwxrwxrwx  3 kimi kimi    69632  9\u6708 22  2021  rasp_2b_alpha\/\ndrwxrwxrwx  2 kimi kimi    20480 10\u6708  7  2021  rasp_2b_beta\/\ndrwxrwxr-x  2 kimi kimi     4096  4\u6708 16  2022  rasp_3b_alpha\/\ndrwxrwxrwx  3 kimi kimi  1646592 12\u6708  2 09:12  rasp_3b_beta\/\ndrwxrwxrwx  2 kimi kimi     4096 11\u6708 29 11:39  rasp_400_alpha\/\ndrwxrwxrwx  2 kimi kimi     4096 11\u6708 29 11:39  rasp_4b_alpha\/\ndrwxrwxrwx  5 kimi kimi  3284992 12\u6708  2 09:26  rasp_4b_beta\/\ndrwxrwxrwx  2 kimi kimi     4096  7\u6708 26 13:32  rasp_4b_gamma\/\ndrwxrwxrwx  6 kimi kimi  3440640 12\u6708  4 13:07  rasp_zero_alpha\/\ndrwxrwxrwx  5 kimi kimi  1826816 12\u6708  4 13:59  rasp_zero_beta\/\ndrwxrwxrwx  5 kimi kimi   253952 12\u6708  4 00:42  rasp_zero_delta\/\ndrwxrwxrwx  5 kimi kimi 21622784 12\u6708  2 09:21  rasp_zero_epsilon\/\ndrwxrwxrwx  5 kimi kimi  3424256 12\u6708  4 18:09  rasp_zero_eta\/\ndrwxrwxrwx  6 kimi kimi  2617344 12\u6708  1 07:06  rasp_zero_ganma\/\ndrwxrwxrwx  3 kimi kimi  3186688  8\u6708  2  2022  rasp_zero_iota\/\ndrwxrwxrwx  2 kimi kimi     4096  6\u6708 21  2022  rasp_zero_kappa\/\ndrwxrwxrwx  6 kimi kimi  2015232 12\u6708  2 09:23  rasp_zero_theta\/\ndrwxrwxrwx  6 kimi kimi  4227072 12\u6708  4 18:25  rasp_zero_zeta\/\ndrwxrwxr-x  3 kimi kimi     4096 12\u6708  2 09:25  scripts\/\n<\/code><\/pre><\/div>\n\n\n\n<p>\u30ab\u30e1\u30e9\u304c\u63a5\u7d9a\u3055\u308c\u3066\u3044\u308bRaspberry Pi zero\u5074\u306e\/etc\/fstab\u306e\u8a2d\u5b9a\u306f\u6b21\u306e\u901a\u308a\u3002---\u306f\u9069\u5b9c\u5fc5\u8981\u306a\u5185\u5bb9\u306b\u5909\u66f4\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>proc                  \/proc           proc    defaults          0       0                                                                 \nPARTUUID=331defd0-01  \/boot           vfat    defaults          0       2\nPARTUUID=331defd0-02  \/               ext4    defaults,noatime  0       1\n# a swapfile is not a swap partition, no line here\n#   use  dphys-swapfile swap[on|off]  for that\n\n\/\/---.---.---.---\/zero_zeta \/home\/-----\/Pictures cifs username=-----,password=-----,uid=1000,gid=1000 0 0 \n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%97%A5%E6%AF%8E%E3%81%AE%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88\"><\/span>\u65e5\u6bce\u306e\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u201ddaily_script.sh\u201d\u3067\u4fdd\u5b58\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>#!\/bin\/bash                                                                                                                         \n# Script to make time series images into video\n\n# \u5bfe\u8c61\u306eRaspberry Pi\nrasp=&quot;zero_zeta&quot;\n\n# \u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\nbase_dir=&quot;\/home\/kimi\/Pictures\/rasp_${rasp}&quot;\n\n# \u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6307\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5909\u66f4\ncd &quot;$base_dir&quot; || exit 1\n\n# \u524d\u65e5\u3092\u53d6\u5f97\nfile_name=`date -d &#39;yesterday&#39; &#39;+%Y%m%d&#39;`\n# \u524d\u65e5\u306e\u5e74\u3092\u53d6\u5f97\nyear=$(date -d &quot;$file_name&quot; &#39;+%Y&#39;)\n\n# \u30c6\u30f3\u30dd\u30e9\u30ea\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u3001\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5909\u66f4\nmkdir -p temp \nmv ${file_name}*.jpg  .\/temp\/  || exit 1\ncd .\/temp\/\n\n# \u7a7a\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3001\u524a\u9664\n# \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u72b6\u614b\u306b\u3088\u308a\u3001\u753b\u50cf\u304c\u58ca\u308c\u308b\u3053\u3068\u304c\u3042\u308b\u69d8\u3067\u3001\u5bb9\u91cf\u30bc\u30ed\u306ejpeg\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u3068ffmpeg\u304c\u5931\u6557\u3059\u308b\u305f\u3081\u3002\nfind . -empty -delete \n\n# \u9023\u756a\u306e\u3064\u3051\u76f4\u3057 \nls | awk &#39;{printf &quot; mv %s pic%05d.jpg\\n&quot;, $0, NR}&#39; | bash\n\n# \u52d5\u753b\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u5909\u63db\nffmpeg -f image2 -r 15 -i pic%05d.jpg -r 15 -an -vcodec libx264 -pix_fmt yuv420p -loglevel quiet ${file_name}.mp4\n\nif [ $? -eq 0 ]; then\n\n    # \u52d5\u753b\u30d5\u30a1\u30a4\u30eb\u306e\u79fb\u52d5\n    mv &quot;${file_name}.mp4&quot; ..\/${year}\/&quot;${file_name}_${rasp}.mp4&quot;\n    # temp\u30d5\u30a9\u30eb\u30c0\u304b\u3089\u79fb\u52d5\u3001\u6d88\u53bb\n    cd ..\n    rm -r temp\nfi<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%9C%88%E5%88%9D%E3%81%AE%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88\"><\/span>\u6708\u521d\u306e\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u201dnew_monthly_scpt.sh\u201d\u3067\u4fdd\u5b58\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>#!\/bin\/bash                                                                                                                         \n# \u65e5\u6bce\u306e\u30e0\u30fc\u30d3\u30fc\u3092\u3072\u3068\u6708\u5206\u307e\u3068\u3081\u308b\u30b9\u30af\u30ea\u30d7\u30c8\n\n# \u5bfe\u8c61\u306eRaspberry Pi\nrasp=&quot;zero_zeta&quot;\n\n# \u30d9\u30fc\u30b9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\nbase_dir=&quot;\/home\/kimi\/Pictures\/rasp_${rasp}&quot;\n\n# \u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6307\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5909\u66f4\ncd &quot;$base_dir&quot; || exit 1\n\n# \u5148\u6708\u306e\u5e74\u3068\u5e74\u6708\u3092\u53d6\u5f97\nlast_month=$(date -d &#39;last month&#39; &#39;+%Y-%m&#39;)\nYear=$(date -d &quot;$last_month-01&quot; &#39;+%Y&#39;)\nYM=$(date -d &quot;$last_month-01&quot; &#39;+%Y%m&#39;)\n\n# \u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5148\u6708\u306e\u5e74\u306b\u5909\u66f4\nif [ ! -d &quot;${Year}&quot; ]; then\n    mkdir &quot;${Year}&quot;\nfi\ncd &quot;${Year}&quot; || exit 1\n\n# Trash\u30d5\u30a9\u30eb\u30c0\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u4f5c\u6210\ntrash_folder=&quot;Trash&quot;\nif [ ! -d &quot;${trash_folder}&quot; ]; then\n    mkdir &quot;${trash_folder}&quot;  || exit 1\nfi\n\n# \u65e5\u6bce\u306e\u52d5\u753b\u306e\u30ea\u30b9\u30c8\u3092\u4f5c\u6210\nvideo_list=&quot;video_list.txt&quot;\nls &quot;${YM}&quot;*.mp4 | awk &#39;{printf &quot;file %s\\n&quot;, $0}&#39; &gt; &quot;${video_list}&quot;  || exit 1\n\n# \u753b\u50cf\u3092\u52d5\u753b\u306b\u5909\u63db\noutput_file=&quot;temp.mp4&quot;\nffmpeg -f concat -i &quot;${video_list}&quot; -c copy -loglevel quiet &quot;${output_file}&quot; \n\n# \u52d5\u753b\u306e\u4f5c\u6210\u304c\u6210\u529f\u3057\u305f\u304b\u3092\u78ba\u8a8d\nif [ $? -eq 0 ]; then\n    # \u65e5\u6bce\u306e\u52d5\u753b\u3092\u524a\u9664\u7528\u30d5\u30a9\u30eb\u30c0\u306b\u79fb\u52d5\n    mv &quot;${YM}&quot;*.mp4 .\/&quot;${trash_folder}&quot;\n    # \u4f5c\u6210\u3057\u305f\u52d5\u753b\u3092\u30d5\u30a1\u30a4\u30eb\u540d\u5909\u66f4\n    mv temp.mp4 &quot;${YM}_${rasp}.mp4&quot;\n    # \u30c6\u30f3\u30dd\u30e9\u30ea\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\n    rm &quot;${video_list}&quot;\nelse\n    # \u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u7d42\u4e86\n    # cron\u306b\u767b\u9332\u3057\u3001\u30e1\u30fc\u30eb\u51fa\u529b\u304c\u4e0d\u8981\u306a\u5834\u5408\u3001\n    # cron \u30b8\u30e7\u30d6\u306e\u672b\u5c3e\u306b &quot;&quot;&gt;\/dev\/null 2&gt;&1&quot; \u3092\u8ffd\u52a0\u3057\u3066\u6a19\u6e96\u51fa\u529b\u3068\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u3092\u7834\u68c4\u3059\u308b\u3053\u3068\n    echo &quot;Error: No files found for copying.&quot;\n    exit 1\nfi<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E9%81%8B%E7%94%A8\"><\/span>\u904b\u7528<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u753b\u50cf\u306e\u4fdd\u5b58\u5148\u306ePC\u306ecrontab\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3001\u65e5\u6bce\u30e0\u30fc\u30d3\u30fc\u3068\u6708\u6bce\u306e\u30e0\u30fc\u30d3\u30fc\u3092\u4f5c\u6210\u3059\u308b\u524d\u8ff0\u306e\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>#\u6708\u6bce\u306e\u30e0\u30fc\u30d3\u30fc\u306e\u4f5c\u6210                                                                                                               \n00 1 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_zeta\/new_monthly_scpt.sh\n02 1 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_eta\/new_monthly_scpt.sh\n20 0 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_alpha\/new_monthly_scpt.sh\n30 0 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_beta\/new_monthly_scpt.sh\n40 0 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_delta\/new_monthly_scpt.sh\n#50 0 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_ganma\/monthly_scpt.sh\n#10 1 1 * * bash \/home\/kimi\/Pictures\/rasp_zero_theta\/monthly_scpt.sh\n#0 1 1 * *  bash \/home\/kimi\/Pictures\/rasp_zero_epsilon\/monthly_scpt.sh\n#20 1 1 * * bash \/home\/kimi\/Pictures\/rasp_4b_beta\/monthly_scpt.sh\n\n#\u4e00\u65e5\u5206\u306e\u753b\u50cf\u304c\u591a\u3044\u5834\u6240\u306f\u65e5\u6bce\u306e\u30e0\u30fc\u30d3\u30fc\u3082\u4f5c\u6210\n0 0 * * *  bash \/home\/kimi\/Pictures\/rasp_zero_eta\/daily_script.sh\n10 0 * * *  bash \/home\/kimi\/Pictures\/rasp_zero_zeta\/daily_script.sh\n15 0 * * *  bash \/home\/kimi\/Pictures\/rasp_zero_alpha\/daily_script.sh\n20 0 * * *  bash \/home\/kimi\/Pictures\/rasp_zero_beta\/daily_script.sh\n30 0 * * *  bash \/home\/kimi\/Pictures\/rasp_zero_delta\/daily_script.sh\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%81%BE%E3%81%A8%E3%82%81\"><\/span>\u307e\u3068\u3081<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u554f\u984c\u306a\u304f\u3001\u65e5\u6bce\u53ca\u3073\u6708\u521d\u306f\u51e6\u7406\u3055\u308c\u3001\u753b\u50cf\u306f\u6708\u6bce\u306e\u52d5\u753b\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u305f\u3002<br>\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u304c\u5c11\u306a\u304f\u306a\u3063\u305f\u3053\u3068\u3067\u3001\u30c7\u30a3\u30b9\u30af\u5bb9\u91cf\u304c20\uff05\u7a0b\u6e1b\u5c11\u3057\u305f\u3002\u4ee5\u524d\u306f70\uff05\u3050\u3089\u3044\u4f7f\u7528\u3057\u3066\u3044\u305f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>09:24 \u5348\u524d kimi@endeavor-na601e:~\/Pictures\/rasp_zero_zeta\n$ df -h\nFilesystem      Size  Used Avail Use% Mounted on\ntmpfs           781M   12M  770M   2% \/run\n\/dev\/sda1       229G   99G  118G  46% \/\ntmpfs           3.9G     0  3.9G   0% \/dev\/shm\ntmpfs           5.0M  4.0K  5.0M   1% \/run\/lock\ntmpfs           781M  100K  781M   1% \/run\/user\/121\ntmpfs           781M   92K  781M   1% \/run\/user\/1000\n<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b Raspberry Pi\u306b\u63a5\u7d9a\u3057\u305f\u30ab\u30e1\u30e9\u3068motion\u3092\u4f7f\u7528\u3057\u3066\u3001\u52d5\u4f53\u691c\u51fa\u3001\u305d\u306e\u753b\u50cf\u3092\u30d5\u30a1\u30a4\u30eb\u5171\u6709\u5148\u306eUbuntu PC\u306b\u4fdd\u5b58\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u308b\u3002\u3053\u308c\u3092\u6708\u521d\u306bffmpeg\u3092\u5229\u7528\u3057\u3066\u3001\u52d5\u753b\u5316\u3057\u3066\u5e74\u5ea6\u3054\u3068\u306e\u30d5\u30a9\u30eb\u30c0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":92,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"common","vkexunit_cta_each_option":"","_lightning_design_setting":{"layout":"default"},"footnotes":""},"categories":[7,5],"tags":[],"class_list":["post-808","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-5"],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/posts\/808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=808"}],"version-history":[{"count":29,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/posts\/808\/revisions"}],"predecessor-version":[{"id":842,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/posts\/808\/revisions\/842"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=\/wp\/v2\/media\/92"}],"wp:attachment":[{"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aqua-informatics.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}