crontabによる処理のスケジューリング
このページはcrontab
コマンドによる定期的な処理について簡単に整理しています.
目次
スケジュールの設定
crontab
コマンドでスケジュールの設定を行うにはe
オプションを用います.
crontab -e |
エディタが開かれるので,次の形式でコマンドをいつ実行するか指定します.
分 時 日 月 曜日 コマンド |
以下,いくつかの例です.
- 一時間おきなら
0 */1 * * *
という具合で間隔を指定します. - 日曜日と水曜日の0時0分に
command
という名前のコマンドを実行するなら,0 0 * * 0,3 command >/dev/null 2>&1
とします.(ここでのリダイレクトはエラー通知のメールを破棄するものです.)
登録内容の確認と削除
登録内容の確認は
crontab -l |
により行えます.
また,登録内容の全削除は
crontab -r |
により行えますが,r
(全削除)はe
(登録)の隣のキーであるため,スケジュール登録時は細心の注意を払わねばなりません.
重要なcrontab設定ではバックアップなく直接入力をしてはいけません.
スケジュール登録するコマンドのパスについて
crontab
実行時のPATH
の値は通常と異なるので,crontab -e
でviが開かれたときに冒頭でPATH
を適切に設定する必要があります.
which
コマンドでパスを調べるとよいでしょう.
秒間隔でコマンドを実行したい場合
crontab
単体では分単位までしかスケジューリングできません.
秒単位の設定を行うには,別のコマンドと併用します.
次は15秒間隔で実行する例です.
* * * * * for i in `seq 0 15 59`;do (sleep ${i} ; コマンド) & done; |