※この記事はQiitaに投稿した記事を加筆修正しております。

 

Motionを時間指定で実行したい時のために手順を紹介します。

 

目的

毎日8:00~19:00の間でMotionを実行したい

※将来的には平日のみ起動させたいが今は保留

 

使うもの

  • Raspberry Pi 3 Model B
  • cron
  • Motion(インストール済)

 

手順

1. Motion開始(終了)コマンドが書かれたバッチファイルを作成する

Motion開始コマンド用ファイルを作成します。

sudo touch MotionStart.sh
sudo vim MotionStart.sh

 

MotionStart.shにMotionサービスを開始するプログラムを書きます。

sudo Motion

   

Motion終了コマンド用ファイルの作成

sudo touch MotionEnd.sh
sudo vim MotionEnd.sh

   

MotionEnd.sh にMotionサービスを停止させるプログラムを書きます。

sudo service motion stop

   

2. cronのログが出力されるようにする

rsyslog.confにアクセスします。

sudo vim /etc/rsyslog.conf

   

該当行のコメントアウトを外します。

#cron.* /var/log/cron.log
↓
cron.* /var/log/cron.log

   

保存をしたらログ管理システムを再起動します。
sudo /etc/init.d/rsyslog restart

   

3. cronに登録する

crontabに以下のコードを追加します。
crontab -e

#毎日8時にプログラムを実行
00 8 * * * sh /home/pi/MotionStart.sh
#毎日19時にプログラムを実行
00 19 * * * sh /home/pi/MotionEnd.sh

   

スケジュールされているか下記のコードで確認します。
crontab -l 

   

スケジュールが動いているかはログを見ることで確認できます。   sudo cat /var/log/cron.log

   

参考サイト

決まった時間に処理する
crontab で細かいスケジュールの設定