cronを設定することにより、指定のコマンドを指定時間に実行できるようになります。このcronを利用するには、crondデーモンが起動している必要があります。
|
| システムのデフォルト設定 |
cronは多くのディストビューションでインストール直後からなんらかの設定がされています。この設定は/etc/crontabファイルに記述されており、それぞれ/etc/cron.daily,/etc/cron.hourly,/etc/cron.monthly,/etc/cron.weeklyディレクトリ内にあるコマンド(スクリプト)を/etc/crontabに設定された日時に実行されます。参考までにこの設定をのぞいてみるのも良いでしょう。夜中の4時に勝手になにかが動いている理由がわかります。
|
| cronの書式 |
cronの設定書式は、分 時 日 月 曜日 (実行ユーザ) コマンド で設定します。
例えば、/etc/crontabには以下のような設定がされています。
|
|
02 4 * * * root run-parts /etc/cron.daily
|
この設定は、毎日4時2分に/etc/cron.dailyディレクトリ内のコマンド(スクリプト)を実行する設定になります。
*run-partsを指定してある場合は、該当ディレクトリ内のコマンド(スクリプト)が全て実行されます。
各フィールドの指定方法は、以下の表を参考にしてください。
|
| フィールド | 書式 |
| 分 | 0から59で指定。*(ワイルドカード)は毎分になる |
| 時 | 0から23で指定。*(ワイルドカード)は毎時になる |
| 日 | 1から31で指定。*(ワイルドカード)は毎日になる。 |
| 月 | 1から12で指定。*(ワイルドカード)は毎月になる。 |
| 曜日 | 0から7で指定。0と7は日曜日で、1=月,2=火,以降、、、。
|
| (実行ユーザ) | cronは設定したユーザの権限で実行されます。指定したい場合のみ記述します。 |
| コマンド | 実行コマンドやシェルスクリプトをしてします。 |
日付けや時間は範囲指定はが可能になっています。例えば、1時,2時,3時,4時に実行したい場合は、時間指定の所に、1-4と記述します。
また、1時間置きに実行したい場合は、時間指定の所に、*/1と記述します。(2時間置きは、*/2)
|
例)指定日時(10/1_3:00)にhoge.shを実行する。
0 3 1 10 * /usr/local/bin/hoge.sh
|
|
例)毎日、2時にhoge.shを実行する。
0 2 * * * /usr/local/bin/hoge.sh
|
|
例)月初めにの5時にhoge.shを実行する。
0 5 1 * * /usr/local/sbin/hoge.sh
|
|
例)2時間ごとにhoge.shを実行する。
0 */2 * * * /usr/local/bin/hoge.sh
|
|
| cronの設定 |
実際にcronを設定してみましょう。cronの設定は実行ユーザが、crontab -eコマンドで設定します。
ユーザ:sakuraiが設定したものは、/var/spool/cron/sakuraiに、ユーザ:rootが設定したものは、/var/spool/cron/rootに保存されます。
ここでの設定は、viで記述すし保存します。保存後crondが変更内容を察知してくれます。
新規設定や編集 : crontab -e
現在の設定内容を参照 : crontab -e
全ての設定を削除 : crontab -r
|