cronは特定の時刻になると書かれたプログラムを実行してくれる便利なヤツ
大事なヤツはずなのに、たまにしか使わないので忘れるのです(^^)
なので忘れてもいいようにサンプルを書いておきます
# 記述方法は下のような感じ # min hour day mon week command # 3分毎に sample.sh を実行する */3 * * * * /bin/sh /home/example/sample.sh # 毎日12:30 にhoge.lock を作成・更新する 30 12 * * * /bin/touch /home/example/hoge.lock # 毎週日曜日と木曜日の1:32 に week_batch.sh を実行する 32 1 * * 0,4 /bin/sh /home/example/week_batch.sh # 3/31 の 01:17 に exampleさんにエイプリル・フールのメールを出す 17 1 31 3 * echo "明日はエイプリル・フール" | nkf -j | mail -s "Notice" example # 昼間(07:00 - 17:00)だけ fuga.sh を実行する 7 7-17 * * * /bin/sh /home/example/fuga.sh
ちなみに、設定は実行したい時間の1分前までに完了させましょう。
1分前に設定ファイルが読み込まれ実行がプーリングされます。
サンプルだけでは寂しいので、crontabの使い方でも書いておきます。
現在の設定を見る
-l オプション をつけて crontab を実行しましょう。
関係ないですが、psql でPostgreSQLのデータベース一覧を見る場合も -l ですね。
$ crontab -l
設定を削除する
エイヤとcronの設定を削除したい。そんな時もcrontabでできます。
$ crontab -r
これでcronの設定を削除できます。
別ユーザーのcron設定をする
root ユーザーや sudo が使えるユーザーはcrontab の -u オプションで他の人になりきってcrontabを使えます
# crontab -u hoge -e
or
$ sudo su -c "crontab -u hoge -e"