2017.1.6
2018.4.13

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 : 土

調べてみて初めて知りましたが、結構いろんな設定方法があるんですね。

参考リンク

その他】関連記事