2011/06/24

[Linux] 決まった時間にプログラムを自動で実行させる cron

サーバーのバックアップみたいに定期的に自動でプログラムを実行させたい場合にはcronを使う。


cronの表示
crontab -l


cronの編集
crontab -e


データベースの不要なデータやサーバー内の不要なファイルを削除するクリーンアップ用のプログラムを自動で毎日実行するってことになった。
通常通り指定するなら


0 6 * * * /home/sites/example.com/db_clean.sh
これで朝6時に実行される。
だけど、今回は6時からデータベースとサーバーのバックアップ処理がcronで設定されていた。
バックアップと削除の作業がかぶると大変なことになりそうなので、バックアップが終わってからクリーンアップを始めたかった。


なのでクリーンアッププログラムの最初でバックアップ作業がまだ動いてるかどうか判定してから処理を進めるようにした


cronの設定はこんな感じ
*/10 9-13 * * * /home/sites/example.com/db_clean.sh
9時~13時の間で10分おきにクリーンアッププログラムを実行してみる
バックアップが終了していたら動き出す

クリーンアップは1日1回でいいので、1度実行されたらそれていたら、その日はそれ以上実行しないようにする処理も必要になる

0 件のコメント:

コメントを投稿