Raspberry PiにUSBカメラを接続して、motionで 動体検知対応のカメラとして機能させるまでの備忘録
今回はcron編
(ターミナルのログは所々Jessieの時のものを使っています…)
環境は
USBカメラとの相性で、OS「Raspbian」はちょっと古いですがStretch版を利用
macOS Monterey 12.1
すべてマックのターミナル.appを使っての操作です。
motionが作成した画像ファイル、そのままだとどんどん溜まっていきます。
FTPクライアントアプリで手動で削除するのも大変です。
そこで、定期的に自動で削除するようにしてみました。
Macでターミナルを起動して、Raspberry Piにssh接続します。
ここでは、ファイル名を「delete_motion.sh」とします。
シェルスクリプトの作成(入力するのは「」の中)
「cd」と入力したらリターンキー
「ls」と入力したらリターンキー
binディレクトリがなければ作成
「mkdir bin」と入力したらリターンキー
「cd ~/bin」と入力したらリターンキー
「sudo nano delete_motion.sh」と入力したらリターンキー
なお、motionが書き出す静止画の保存ファイル名は設定で
picture_filename %Y%m%d%H%M%S-%q
に変更しています。
20161003095919-01.jpg
のような感じになります。
例では、今日の日付以外のファイルをすべて削除するようにしてみました。
以下を記入
#!/bin/bash TODAY=$(date +%Y%m%d) TODAY=${TODAY}*.jpg find /mnt/usb1/motion/ -not -name $TODAY -type f | xargs -I{} sudo rm {}
問題なければ、「controlキー + o」
File Name to Writeと下に表示されたらリターンキー
「controlキー + x」で編集を終了します。
出来上がったファイルに実行権を与える
「chmod +x delete_motion.sh」と入力したらリターンキー
crontabを編集(直接crontab -eとしないほうがイイらしいですが…)
「sudo crontab -e」と入力したらリターンキー
no crontab for root - using an empty one /usr/bin/select-editor: 1: /usr/bin/select-editor: gettext: not found 'select-editor'. 1. /bin/ed /usr/bin/select-editor: 1: /usr/bin/select-editor: gettext: not found 2. /bin/nano <---- 3. /usr/bin/vim.tiny /usr/bin/select-editor: 32: /usr/bin/select-editor: gettext: not found 1-3 [2]: 2
と言われたら、nanoで編集するので
「2」と入力してリターンキー
毎日9時30分に実行するようにしてみます。
また、エラーログを /home/pi/cron_error.log に書き出します。
頭のSHELL=とPATH=の行はいらないかもしれません。
以下を追記
SHELL=/bin/bash PATH=/home/pi/bin:/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 30 9 * * * /bin/bash /home/pi/bin/delete_motion.sh > /home/pi/cron_error.log 2>&1
問題なければ、「controlキー + o」
File Name to Writeと下に表示されたらリターンキー
「controlキー + x」で編集を終了します。
cronの設定を確認する
「sudo crontab -l」と入力したらリターンキー
cronを再起動
「sudo /etc/init.d/cron restart」と入力したらリターンキー
これで、毎日9時30分に前日分のファイル全てを削除するようになります。
コメント