Cron

Cron #

日時・時刻・インターバルの指定 #

記述方法 #

時,日,月,曜日,実行コマンド

記号による指定 #

記号内容
*全範囲指定(ワイルドカード)
-範囲指定
/インターバル指定
,区切り指定

曜日の指定 #

  • 略語または数字での指定が可能
略語数字
sun0
mon1
tue2
wed3
thu4
fri5
sat6

月の指定 #

  • 略語または数字での指定が可能
略語数字
jan1
feb2
mar3
apr4
may5
jun6
jul7
aug8
sep9
oct10
nov11
dec12

注意事項 #

実行ディレクトリ #

  • cron ジョブ実行時のカレントディレクトリ = ユーザーのホームディレクトリ
  • 実行コマンドの指定は「絶対パスを指定」または「実行ディレクトリにcdで移動」すること

環境変数 #

  • cron ジョブ実行時は最低限の環境変数のみセットされた状態、パスが通っていないケースがあるため注意
  • shell内での指定と異なり、右辺の環境変数が展開されないため注意
# NG
PATH=/usr/local/bin:$PATH
# OK
PATH=/usr/local/bin:/usr/bin:/bin

毎分指定 #

  • 日次のバッチを誤って毎分実行しないよう注意
# NG
* 5 * * * /path/to/backup.sh
# OK
5 5 * * * /path/to/backup.sh
  • 1分おきインターバルのベタープラクティス
*/1 * * * /path/to/monitor.sh

% のエスケープ #

  • crontab の指定において % は改行を意味する特殊文字
  • % を指定したい場合は \% のように \ バックスラッシュでエスケープすること

曜日と日付の同時指定 #

  • 曜日と日付が同時に指定された場合、片方の条件を満たした場合に実行されるため注意 (OR条件)
# 13日の金曜日に実行されるのではなく、13日または金曜日に実行されてしまうため注意
0 0 13 * 5 /path/to/jewison.sh

0分ちょうどの指定 #

  • 毎時0分に設定すると他の cronジョブと時間が重なってしまうケースが多いため避けたほうがベター

パーサー #