cron 2012 年 5 月 13 日

crontab -e

34 12 * * * 12:34に実行
25 08 * * *    08:25に実行
0 17 * * * 17:00に実行
0 17 * * 1 毎週月曜の 17:00に実行
0,10 17 * * 0,2,3 毎週日,火,水曜の 17:00と 17:10に実行
0-10 17 1 * * 毎月 1日の 17:00から17:10まで 1分毎に実行
0 0 1,15 * 1 毎月 1日と 15日と 月曜日の 0:00に実行
42 4 1 * *     毎月 1日の 4:42分に実行
0 21 * * 1-6   月曜日から土曜まで 21:00に実行
0,10,20,30,40,50 * * * * 10分おきに実行
*/10 * * * *        10分おきに実行
* 1 * * *         1:00から 1:59まで 1分おきに実行
0 1 * * *         1:00に実行
0 */1 * * *        毎時 0分に 1時間おきに実行
0 * * * *         毎時 0分に 1時間おきに実行
2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02に実行
30 5 1,15 * *       1日と 15日の 5:30に実行

実行結果は
/var/log/cron
に記録される。

■アパッチが落ちているかチェックして、落ちていたら起動する
さくらのVPSに契約して、運用を開始したところ、2,3日連続稼働していると、必ずapacheが落ちてしまう現象が発生していた。
実験用サーバとして、使っているだけなので、原因特定する技術レベルがあるわけでもないのでほうっておいたが、せめてアパッチが落ちていたら起動する程度のことはやっておこうと調査開始。

httpdのプロセスがなかったら、apacheを起動するコマンドをシェルで書いておいて、cronで定期的にチェックすればいいかと思って、とりあえずroot直下にhttpd_check.shなどを書いて、cronに登録したけど、全然動かない。。

主導で以下をやっても確かに動かず。
/bash/sh /root/httpd_check.sh

source ./httpd_check.sh
とやったときだけ動いてくれる。。

よくわからないまま、ググり続けたら以下の記事をみつけ
「プロセス監視シェルスクリプト」
http://flagsystem.co.jp/news/archives/37
/etc/cron.d/以下にシェルスクリプトを置いて、crontab -eで設定しているものをそのまま試したら動いた。

※ちなみに記事中のchown 755 /etc/cron.d/process_chk.shではなく、chmodの間違いであろう。

これで、定期的にhttpdのプロセスを確認して、自動で復旧するようにできた!
ここ数カ月モヤモヤしていたことが解消されたので大変うれしい。

今後は、このへんも注意深くチェックしておきたい所
http://dqn.sakusakutto.jp/2012/06/cron_crontab9.html

関連する記事:

Leave a Reply