Linuxのcrontabの設定例
Linuxで定期的にバッチを実行する際にcronを利用すると思いますが、その設定方法をよく忘れてしまうので設定例をメモしておきます。
ファイルは「/etc/crontab」を編集します。開くと以下のようなコメントが書かれていますが、最初はこれだけでは何をどう設定したらいいのか分かりませんね。
Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
以下、設定例です。
設定例
1時間に1回 実行
# 毎時0分
0 * * * * echo "test"
# 毎時30分
30 * * * * echo "test"
3時間に1回 実行
0 */3 * * * echo "test"
毎日6時に実行
0 6 * * * root echo "test"
9時、14時、15時、16時に実行
0 9,14-16 * * * echo "test"
毎月1日の6時に実行
0 6 1 * * echo "test"
月末の6時に実行
0 6 28-31 * * /usr/bin/test $( date -d '+1 day' +%d ) -eq 1 && echo "test"
さらに曜日を指定することもできるようです。
# 月曜日の6時
0 6 * * 1 echo "test"
# 平日の6時
0 6 * * 1-5 echo "test"
# 0 or sun : 日
# 1 or mon : 月
# 2 or tue : 火
# 3 or wed : 水
# 4 or thu : 木
# 5 or fri : 金
# 6 or sat : 土
調べてみて初めて知りましたが、結構いろんな設定方法があるんですね。