Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

Cronの使い方

【スポンサーリンク】

今日はcronについて紹介したいと思います。cronとは、スクリプトを定期実行してくれるプログラムです。起動時に毎回実行したい、指定した時間にスクリプトを実行したいという場面は多いと思います。そんなときに、このcronという機能はとても役に立ちます。

事前準備

postfixをインストールします。cronでスクリプトエラーが発生するとメールで送信しようします。MTA(メール転送エージェント)が入っていないとcron実行時にエラーになりますので、postfixをインストールしておきます。

sudo apt-get install postfix

cronの設定方法

まず、下記のコマンドでcrontabを起動し、定期実行したい時間とそのスクリプトを書き込み設定を行います。

$ crontab -e
※設定した内容は、そのユーザ権限で実行されます。

crontabの書き方

左から 分[0-59] 時[0-23] 日[1-31] 月[1-12] 曜日[0-7]「実行内容」の順番で記載します。各項目はスペースを開けて記載します。また、下記のような書き方もできます。

◆複数指定 ⇒ カンマで区切ります。「0,30」
◆範囲指定 ⇒ ハイフンを使用します。「8-17」
◆間隔 ⇒ 右記のように記載します。「*/10(10分間隔)」


◇例1 8時~12時の0分、30分にtest.pyを実行する
00,30 8-12 * * * python /home/pi/test.py

◇例2 15分毎にtest.pyを実行する
*/15 * * * * python /home/pi/test.py

◇例3 起動時に毎回、test.pyを実行する
@reboot python /home/pi/test.py

プログラムのパスはフルパスで記載しておいたほうが安全です。

エラー時のログ

cronは/var/log/syslogにエラーログが出力されます。私ははじめ、(CRON) info (No MTA installed, discarding output)とエラーが出て正常に動きませんでした。ネットで調べるとMTAのインストールが必要で、postfixをインストールすると解決しました。

定期実行も便利ですが、起動時に毎回実行してくれる機能もあるので、とても助かります。ハードウェアの初期設定等をスクリプトにして、cronで起動時に実行するようにすれば、毎回設定する手間を省くことができます(/etc/rc.localにコマンドを書くことでも起動時に毎回スクリプトを実行することができます)。

使い方も簡単ですので、ぜひ活用してみてください。