端くれプログラマの備忘録 Unix [Unix] cronの使い方

[Unix] cronの使い方

crondが動作しているか確認

$ ps -eal | grep cron
1 S 0 1925 1 0 80 0 - 29215 hrtime ? 00:00:00 crond
$ sudo /etc/rc.d/init.d/crond status
crond (pid 1925) is running...
$

ログの所在

/var/log/cron

crontabファイルの所在

/var/spool/cron/<user>

crontabコマンド

usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)
        -s      (selinux context)
# crontab -e //エディタが開く
# crontab -l //設定の確認
# crontab -r //全設定の削除

他のユーザのcron設定をする場合は-uオプションでユーザを指定する

# crontab -u foo -e
# crontab -u foo -l
# crontab -u foo -r

crontabファイルの書き方

分 時 日 月 曜日 <コマンド>

日時指定

  • 分: 0-59
  • 時: 0-23
  • 日: 1-31
  • 月: 1-12
  • 曜日: 0-7 (0と7が日曜日)

記号

  • 「#」: コメント
  • 「*」: ワイルドカード
  • 「-」: 範囲指定 (例: 15-20)
  • 「,」: 複数指定 (例: 15,20,25)
  • 「/」: ステップ (例: 10-20/2 10から20まで2ごと)

サンプル

00 14 * * * /usr/bin/cmd // 毎日14:00に実行
* * * * * /usr/bin/cmd // 毎分実行
15,30 06 * * 2 /usr/bin/cmd // 毎週火曜日の6:15と6:30に実行
05 23 * 3-5 4 /usr/bin/cmd // 3~5月の毎週木曜日23:05に実行

コマンドの標準出力や標準エラー出力がある場合/dev/nullに捨てること。 (> /dev/null 2>&1)

参考サイト

cronの設定
http://kazmax.zpp.jp/linux/lin_cron.html

crontab使い方まとめ。 – ばくのエンジニア日誌
http://bakunyo.hatenablog.com/entry/2013/06/20/crontab%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%BE%E3%81%A8%E3%82%81%E3%80%82