はじめに
たまに書こうと思ったときに「どうするんだっけ?」となってしまう cronの書き方をまとめてみました。
cronの基本
# 編集
crontab -e
# 確認だけしたいとき
crontab -l
基本書式
分 時 日 月 曜日 コマンドパス
- 分: 0~59
- 時: 0~23
- 日: 1~31
- 月: 1~12
- 曜日: 0~7(0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土, 7:日)
時間指定の例
- すべてを指定したい(毎時など):
*
- 15分ごとに実行: 分部分で
0,15,30,45
または*/15
- 月~金曜日で実行: 曜日部分で
1-5
- 1時、3時、20 ~ 23時で実行: 時間部分で
1,3,20-23
- 1時、3時、5時で実行: 時間部分で
1-5/2
(おまけ)複数コマンドを実行したい場合
;
で区切る。
(おまけ)タイムゾーンを指定したい場合
サーバーのタイムゾーンに関係なく、cronを実行するときのタイムゾーンを指定できます。
CRON_TZ=Asia/Tokyo
(おまけ)ログを出力したい場合
1が標準出力、2が標準エラー出力です。
>> /tmp/cron.log 2>&1
例
毎日05:30(JST)に/home/hoge
に移動後、get_huga.py
を実行し、
標準出力・標準エラー出力を/home/hoge/log/cron.log
に記録する。
CRON_TZ=Asia/Tokyo
30 5 * * * cd /home/hoge; python get_huga.py >> /home/hoge/log/cron.log 2>&1