Linux初心者~cronについて~

システムcron, crontab, Linux

はじめに

システム運用していると良く使われるcronについてまとめてみました。

cronとは

簡単に言うと、定期的に実行したいこと(ログのローテートやバックアップなど)をcrond(cronデーモン)で管理し行うことができる機能です。

crontabとは

定期実行するジョブを設定するファイルで、ユーザ毎に用意される。
また、定期実行するジョブを設定するには、crontabコマンドを使用することで出来る。

crontabコマンド

  • オプション
    オプション 内容
    -u ユーザーを指定
    -i 一覧で表示
    -r 設定を全消去
    -e 設定するエディタを起動
  • 表示

# sudo -u ユーザ名 crontab -l
  • 編集
# sudo -u ユーザ名 crontab -e

crontab設定

  • 形式
分 時 日 月 曜日 <実行コマンド>
  • 設定例
    内容
    * 15 * * * echo “hello.” 15時になる度に実行
    */5 * * * * echo “hello.” 5分毎に実行
    5,10 2 * * * echo “hello.” 午前2時5分と午前2時10分に実行
    5 2-5 * * * echo “hello.” 午前2時5分、午前3時5分、午前4時5分、午前5時5分に実行
    43 23 * * * 23:43に実行
    12 05 * * * 05:12に実行
    0 17 * * * 17:00に実行
    0 17 * * 1 毎週月曜の 17:00に実行
    0,10 17 * * 0,2,3 毎週日,火,水曜の 17:00と 17:10に実行
    0-10 17 1 * * 毎月 1日の 17:00から17:10まで 1分毎に実行
    0 0 1,15 * 1 毎月 1日と 15日と 月曜日の 0:00に実行
    42 4 1 * * 毎月 1日の 4:42分に実行
    0 21 * * 1-6 月曜日から土曜まで 21:00に実行
    0,10,20,30,40,50 * * * * 10分おきに実行
    */10 * * * * 10分おきに実行
    * 1 * * * 1:00から 1:59まで 1分おきに実行
    0 1 * * * 1:00に実行
    0 */1 * * * 毎時 0分に 1時間おきに実行
    0 * * * * 毎時 0分に 1時間おきに実行
    2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02に実行
    30 5 1,15 * * 1日と 15日の 5:30に実行
    */5 * * * * 0分、5分、10分、……、55分
    1-56/5 * * * * 1分、6分、11分、……、56分
    2-57/5 * * * * 2分、7分、12分、……、57分
    3-58/5 * * * * 3分、8分、13分、……、58分
    4-59/5 * * * * 4分、9分、14分、……、59分

設定ファイル

  • ユーザ名の自動タスク設定ファイル
/var/spool/cron/ユーザ名
  • 毎時、毎日、毎月、毎週の自動タスクのメイン設定ファイル
/etc/crontab

ログファイル

# less /var/log/cron

参考

システムcron, crontab, Linux

Posted by UT