Raspberry Piのセットアップ(cron編)Stretch版

この記事は最終更新日から 約3年が経過しているので情報が古い可能性があります。

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分に前日分のファイル全てを削除するようになります。

コメント

タイトルとURLをコピーしました