cronによる定期実行の設定方法

これはなに Link to this heading

cronで定期実行する方法を毎回調べているのでメモしておくだけ。

手順 Link to this heading

1. スクリプトに実行権限を付与 Link to this heading

chmod +x /path/to/your/script.sh

2. crontabを編集する Link to this heading

crontab -e

3. cronジョブを追加 Link to this heading

cronの書式は次のようになっている。これに従いcronジョブを追加する。

* * * * * コマンド
│ │ │ │ │
│ │ │ │ └─ 曜日 (0-7, 0と7は日曜日)
│ │ │ └─── 月 (1-12)
│ │ └───── 日 (1-31)
│ └─────── 時 (0-23)
└───────── 分 (0-59)

cron式のオンラインジェネレーターもある。動作タイミングを確認しやすくて便利。オススメ。

Crontab.guru - The cron schedule expression generator image

Crontab.guru - The cron schedule expression generator

An easy to use editor for crontab schedules.

crontab.guru favicon image crontab.guru

例1: 毎日午前9時に実行。

0 9 * * * /path/to/your/script.sh

例2: 5分ごとに実行。

*/5 * * * * /path/to/your/script.sh

例3: 毎週月曜日の午前3時に実行。

0 3 * * 1 /path/to/your/script.sh

4. 設定を確認 Link to this heading

crontab -l

5. cronサービスを再起動(必要に応じて) Link to this heading

sudo service cron restart

6. ログの確認 Link to this heading

cronのログは通常/var/log/syslogに記録される。以下のコマンドで確認できる。

grep CRON /var/log/syslog

注意点 Link to this heading

  • スクリプト内で使用するパスは、必ず絶対パスで指定する
  • cron環境は通常のシェル環境と異なるため、必要な環境変数を設定する
  • 出力をログファイルにリダイレクトすることを検討する

出力は以下のようにすればログファイルにリダイレクトできる。

0 9 * * * /path/to/your/script.sh >> /path/to/your/logfile.log 2>&1

あるいは、以下のようにすれば出力を捨てられる。

0 9 * * * /path/to/your/script.sh > /dev/null 2>&1

参考文献・URL Link to this heading

cronの詳細な使い方については、以下のリンクを参照。

CronHowto - Community Help Wiki image

CronHowto - Community Help Wiki

help.ubuntu.com favicon image help.ubuntu.com
Hugo で構築されています。
テーマ StackJimmy によって設計されています。