TIL

Today I Learned. 知ったこと、学んだことを書いていく

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


参考文献