概要
cron(クーロン)の設定方法について、いつも何だったっけと忘れてしまうので、備忘録として残しておきます。cronとは、定期的に実行したいものや時間を指定して何かを実行したいときに使用するものです。
crontabという言葉もありますが、これはcronの設定ファイル名であり、コマンドの名称でもあります。(cronは総称です。)
書き方・設定方法
設定方法
- crontabファイルの編集方法
crontab -e [-u username]
※実行したいプログラムの実行権限を持ったユーザーで設定を行うこと
※別のユーザーのcrontabファイルを編集するには、rootユーザーになってから-uオプションを利用して設定を行う。
- 現在の設定の確認
crontab -l [-u username]
※別ユーザーの設定を確認するにはrootユーザーになってから-uオプションを利用して設定を確認する
- 設定を削除する
crontab -ir [-u username]
※-iオプションを使用することによって確認してから削除できる
おまけ
設定ファイルは/var/spool/cron/配下に各ユーザーごとの設定が表記されています。なので、全ユーザーの設定を一気に確認したいときは、以下のようなコマンドで確認することが出来ます。
cat /var/spool/cron/*
書き方
続いてcronの書き方についてです。
* * * * * [実行したいコマンド]
| 左から(*) | 実行時間 |
|---|---|
| 1番目 | 分 |
| 2番目 | 時 |
| 3番目 | 日 |
| 4番目 | 月 |
| 5番目 | 曜日 |
(例)
1分毎に実行
* * * * * [実行したいコマンド]
※すべて*にすると1分毎に実行されます。
毎時○分に実行
# 毎時10分に実行
10 * * * * [実行したいコマンド]
# 毎時10分と30分に実行する
10,30 * * * * [実行したいコマンド]
# 毎時10分から30分の間1分毎に実行
10-30 * * * * [実行したいコマンド]
※上記と同様な感じで時,日,月で設定することができます。
曜日
曜日指定は以下の様な感じで指定します。
| 曜日 | 数値 |
|---|---|
| 日 | 0 |
| 月 | 1 |
| 火 | 2 |
| 水 | 3 |
| 木 | 4 |
| 金 | 5 |
| 土 | 6 |
# 毎週日曜日の12時に実行
0 12 * * 0 [実行したいコマンド]
応用
*/30みたいな書き方をすることによって30分ごとに実行なども書ける
# 30分ごとに実行
*/30 * * * * [実行したいコマンド]
# 5時間ごとに実行
0 */5 * * * [実行したいコマンド]
まとめ
cronの書き方・設定方法についてでした。そこまで使う機会ないので、あれどうだったっけと忘れがちですが間違うとまずい場面もあるので、まとめました。
cronでは管理しきれないときは、rundeckとか使うといいかもです。GUIもリッチだし設定も柔軟で使いやすいです。