linux上で指定した時間にプログラムを実行できるcrontabですが,crontabの設定したのに動かないっていう話は前から聞いていて,他人事として聞いていたのですが最近実際に当事者になりました(笑).忘れないうちに…といっても忘れかけてますがメモ.
crontabの基本的な設定
RaspberryPi3で初めてcrontabを使う前に – Qiita
crontabの記述例は以下がわかりやすい↓
cronの設定 – プログラムを指定した時間に定期的に自動的に実行する方法
別の参考資料↓
時間をずらしてcronを実行する – Qiita
これでうまくいくかと思いきや,動かず…
原因はPythonをpyenvで入れていたので,普通に python~とコマンドを記述しているとデフォルトのPythonしか動かないんですね.コマンドにpyenv上のPython絶対パスを指定してあげればうまくいきました.デフォルトだと
$ .pyenv/versions/[バージョン]/bin/python[バージョン]
あたりですかね.
ちなみに,cronのログを/var/log/syslogで確認してみると
raspberrypi /USR/SBIN/CRON[2331]: (CRON) info (No MTA installed, discarding output)
MTAがインストールされていないという.メールを送るやつらしい?
無視でもいいらしいですが,MTAを入れてやれば良いです.
$ sudo apt-get install postfix