1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

crontabに関するメモ(自分用備忘録)

Last updated at Posted at 2022-08-04

この記事の目的

ここに書かれていることは、私のオリジナリティな部分は全くありません。
普段crontabを設定しようとして、「あれ?どう書くんだっけ?」と、ど忘れしがちなので自分のよく使う設定内容・方法についてまとめておきます。

設定確認方法

・自分自身(ログイン中のユーザ)の設定確認
crontab -l

・任意のユーザの設定確認(権限がある場合に限る)
crontab -l -u ユーザ名

・当該サーバにcrontabを設定しているユーザ一覧(rootユーザのみ実行可能)
ls -l /var/spool/cron
ここで表示されたファイル名(=ユーザ名)をcatしても、crontabの設定内容が確認できる

設定編集方法

crontab -e

crontabの書き方

・基本書式
分 時 日 月 曜日 コマンド

項目 内容 備考
0~59
0~23
1~31 30 と指定したら2月は実行されない
1~12
曜日 0~7[0と7は日曜日]
コマンド 実行したいコマンド

具体的な書き方の例

よく使われる書き方

* * * * * command           ・・・毎分実行
0 * * * * command           ・・・毎時0分に実行
5 4 * * * command           ・・・毎日4時5分に実行
0 1,3,5-9 * * * command     ・・・1,3,5,6,7,8,9時に実行
0 10 * * 1-5 command        ・・・平日(月-金)の10時に実行
*/10 * * * * command        ・・・10分毎(0,10,20,30,40,50分)に実行

ちょっと応用

* * * * * sleep 30 ; command   ・・・毎分30秒に実行(毎分実行のものと若干ずらす際によく使用する)
3-53/10 * * * * command        ・・・3,13,23,33,43,53分に実行
2-57/5 * * * * command        ・・・2,7,12,17,22,27,32,37,4247,52,57分に実行

その他特殊な書き方

@reboot command    ・・・(cronデーモンが)起動した際に一度だけ実行
@daily command     ・・・毎日0時0分に実行(0 0 * * * と同じ)
@weekly command    ・・・毎週日曜日の0時0分に実行(0 0 * * 0 と同じ)
55 23 28-31 * * /usr/bin/test `date -d tomorrow +\%d` -eq 1 && command  ・・・月末の23時55分に実行

その他特殊な書き方(その2)

第○△曜日に実行したい場合

・考え方
第1△曜日:1~7日に登場
第2△曜日:8~14日に登場
第3△曜日:15~21日に登場
第4△曜日:22~28日に登場
この日付の範囲であり かつ 曜日が合致すればよい。

0 2 1-7 * * /usr/bin/test `date +\%w` -eq 5 && command  ・・・毎月第1金曜日2時に実行
0 2 8-14 * * /usr/bin/test `date +\%w` -eq 1 && command  ・・・毎月第2月曜日2時に実行
0 2 15-21 * * /usr/bin/test `date +\%w` -eq 3 && command  ・・・毎月第3水曜日2時に実行

注意事項

毎月第1金曜日2時に実行したくて、

0 2 1-7 * 5 command

としてしまうと、1~7日 もしくは 金曜日 の2時に実行されてしまう。

厳重注意事項

crontab -r
とすると、設定が全削除されてしまいます。
Yes / No も聞いてきません。

その他

・ターミナルでコマンドを直接実行すると動くのに、cronだと思ったように動かない・・・というトラブルが稀によくある
 →コマンド実行時とcron実行時の環境変数の違いが原因かも

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?