Skip to content

Instantly share code, notes, and snippets.

@chroju
Last active January 28, 2016 03:55
Show Gist options
  • Select an option

  • Save chroju/6aa0b059892be058cb9e to your computer and use it in GitHub Desktop.

Select an option

Save chroju/6aa0b059892be058cb9e to your computer and use it in GitHub Desktop.
crontabについて

about crontab

書式

* * * * * commnad
  • 左から分、時、日、月、曜日。
  • 曜日は日曜日0から始まる。
  • 範囲指定(1-5)が可能。
  • 複数指定(1,3,5)が可能。
  • 間隔指定(*/10)が可能。これを分に指定した場合は10分間隔。
  • 複合(1,3-5)も可能。

設定

コマンド

# 編集
$ crontab -e
# 表示
$ crontab -l
# 削除
$ crontab -r
# 実行ユーザーを変更
$ crontab -u foo -l
  • erが隣り合わせで逆の意味なので戦慄する人が多いみたい。
  • コマンドによる設定は実行ユーザーごとになる。
  • 設定内容は/var/spool/cron内に保存される。

ファイル直接編集

  • /etc/crontabを直接編集することでシステム全体設定が可能。こちらは周期設定とコマンドの間に実行ユーザー名を入れる書式になる。
  • /etc/cron.d内に置いたファイルも実行対象となる。ファイルはroot:rootの644とする。
  • /etc/cron.daily/etc/cron.weeklyディレクトリに置いたファイルはディレクトリ名の間隔でランダム実行される。CentOS5.xまでは4:02頃の固定実行だったらしいが、6.xからcronie-anacronによるランダム実行に変更された。

実行結果の扱い

  • デフォルトで出力結果はメインアカウントへメール通知される。
  • メール通知が嫌であれば/dev/nullに捨ててしまう場合が往々にあるらしい。
* * * * * command > /dev/null 2>&1
  • ただし行儀が良くはないのできちんとMAILTOを設定する、失敗時だけログを送ってくれるcronlogを使う、loggerコマンドを使ってsyslogに送るといった手法が推奨される。
  • crondの作動結果自体は/var/log/cronに記録される。

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment