cronとは?
cronとは、UNIX系システムの常駐プログラム(デーモン)の一種で、ユーザの設定したスケジュールに基づいて指定したコマンドやシェルスクリプトなどを自動実行してくれるプログラム。
IT用語辞典
設定方法
1.準備
cronを設定するにはcronが起動しているか確認する必要があります。
/etc/rc.d/init.d/crond status crond (pid xxx) を実行中
つぎにcronの設定ファイルは /etc/crontabなので確認してみましょう。
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
なにも設定されていないとこんな感じで表示されると思います。
2.設定
cronを設定するにはcrontabコマンドを使用します。
書式は下記の通りです。
crontab [- u user] {-l|-r|-e}
-eオプションをつけて実行すると、cronの設定ファイルであるcrontabを編集することができます。
※-eオプションを使うべきではないという意見もあるそうなので参考までに
crontab -e は「絶対に」使ってはいけない – ろば電子が詰まっている
crontab -e
実行するとエディタが起動しますので、コマンドのスケジュールを記述していきます。
書式としては下記の通りです。
分 時 日 月 曜日 実行コマンド
たとえば、毎時1分に/home/Me/bin/hoge.shを実行するとしたら下記のように記載します。
01 * * * * /home/Me/bin/hoge.sh
最後に設定が完了したらcrondを再起動して、設定を反映させましょう
/etc/init.d/crond restart
3. run-partsの利用について
上のcron設定ファイルに下記のような記述がありました。
run-parts 01 * * * * root run-parts /etc/cron.hourly
これは /etc/cron.hourlyディレクトリに保存されている実行ファイルを毎時1分に実行させるという意味です。
なので、実行ファイルをcron.hourlyディレクトリに入れてさえおけば毎時1分に実行させることができます。
run-partsで指定されるディレクトリ
/etc/cron.hourly | 1時間に1回実行 |
/etc/cron.daily | 1日に1回実行 |
/etc/cron.weekly | 1週間に1回実行 |
/etc/cron.monthly | 1ヶ月に1回実行 |
利用方法によりますが、「2.」で説明した「crontabファイル」に直接内容を設定するよりもこちらの方法のほうが便利ですし、安全です。
さらに、crondの再起動も不要です。
4. 実行結果の確認
ログを確認してみる
vi /var/log/cron
参考
crontabの書き方 | server-memo.net
設定例がわかりやすく参考になります。
/etc/crontabと/etc/cron.d設定ファイルの書き方 | server-memo.net
cronが動かない場合の対処方法が丁寧に説明されています。