cronについて
cronについて調べたことをまとめてみる。
cronを使うことで定期的にプログラムを実行できる。
raspbianでcronの準備
postfixというメールのアプリを入れないとうまく動かないらしい。とりあえず入れておく。
$ sudo apt-get install postfix
cronの扱い
これはOSによって違う。
RHEL / Fedora / CentOS / Scientific Linuxの場合
/etc/init.d/crond
crond
という扱いになっている。
Ubuntu / Mint / DebianベースのLinuxの場合
/etc/init.d/cron
cron
という扱いになっている。
cronの状態を確認
service crond status
で確認できる。
(自分のラズパイの場合:sudo /etc/init.d/cron status
で確認できた。しかし、service crond status
とは別のものが動いてる???)
cronの起動
sudo /etc/init.d/cron start
他のコマンドオプションはsudo /etc/init.d/cron
で確認できる。
cron実行時のカレントディレクトリ
cronを実行するときのカレントディレクトリは実行しているユーザーのホームディレクトリになる。そのため、cd
でプログラムのあるディレクトリまで移動する必要がある。(またはプログラム中のファイルのパスをすべて絶対パスにする)
標準出力、エラーをメールで送る
crontab
に以下のようにすることで/var/mail/pi
にテキストのメール(?)が送られるようになる。
MAILTO="example@gmail.com"
別ファイルに設定を記述し、反映させる
echo '*/5 * * * * echo "hello."' > cron.conf crontab -u pi cron.conf
こうすることでcronの設定をGitで管理でき、更にcrontab -r
での設定削除を防止できる。
cronの一覧を取得
-l
オプションを付ける
crontab -l