このページはcrontabコマンドによる定期的な処理について簡単に整理しています.

目次

  1. スケジュールの設定
  2. 登録内容の確認と削除
  3. スケジュール登録するコマンドのパスについて
  4. 秒間隔でコマンドを実行したい場合

スケジュールの設定

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;