偏見ですが、RaspberryPiは何かしらのサーバに使われることが多いような気がします。
例に漏れず、自宅のRaspberryPiもサーバとして利用しています。
そのため、プログラムを定期的に実行したい場合があります。
Windowsで言うところのタスクスケジューラのようなものです。
今回はcronというものを使ってプログラムを定期的に実行する設定を紹介していきます。
前提条件
- OS:Raspbian(※)
- 実行するのは自作pythonスクリプト
※Raspbianに限らずDebian系のLinuxOSではcronを使えるっぽいです
cronとは
プログラムを定期的に実行してくれるヤツです。
Windowsで言うところのタスクスケジューラの役割を果たしてくれます。
設定方法
crontabコマンドを使用します。
設定を変更する場合は、以下のように実行します。
crontab -e
書き方
以下のように、決められた書式で設定を記述します。
* * * * * [実行コマンド]
時間設定
「*」の部分は左から順に、分/時/日/月/曜日になります。
- 分:0〜59
- 時:0〜23
- 日:1〜31
- 月:1〜12
- 曜日:0〜7(0と7が日曜、1=月/2=火/…)
時間設定の書式
以下の書式で設定することができます。
- [1,2,3]:1と2と3
- [1-5]:1〜5
- [*/10]:10の間隔を空ける
設定例
以下に設定例を示します。
5 * * * * /home/pi/test.sh #毎時5分にtest.shを実行 5 16 * * * /home/pi/test.sh #16時5分にtest.shを実行 0,30 9 * * * /home/pi/test.sh #9時0分と9時30分にtest.shを実行 0 0 1-10 * * /home/pi/test.sh #毎月1日〜10日の0時0分にtest.shを実行 0 0 1-10 2,4,6,9,11 * /home/pi/test.sh #2月、4月、6月、9月、11月の1日〜10日の0時0分にtest.shを実行 0 0 * * 1 /home/pi/test.sh #毎週月曜日の0時0分にtest.shを実行 */10 * * * * /home/pi/test.sh #10分おきにtest.shを実行 0 0 */2 * * python3 /home/pi/pydayo.py #2日おきにpythonスクリプトのpydayo.pyを実行
参考サイト
Cron – プログラムの定期実行 – Linuxで自宅サーバ構築・管理: KSKNET
余談ですが、crontabに書いた内容のバックアップがあるなら、
crontab <crontabの記述ファイル>
で簡単に以前書いていたcrontabに戻せます。既存のcrontabの内容は上書きされます。
余談ですが、crontabに書いた内容のバックアップがあるなら、
crontab <crontabの記述ファイル>
で簡単に以前書いていたcrontabに戻せます。既存のcrontabの内容は上書きされます。