概要
cron(クローン)はLinuxやMac等のUNIX系のOSに入っているプログラムです。
「この日時に、このプログラムを動かして!」と指示を出しておくと、その時間になったときに指定しておいたプログラムが実行されます。
Shell Script でコマンドの羅列や条件分岐などをスクリプトを作成して、cron に登録して自動起動させる場合などに使われることが多いのです。
cronを使った例
- 毎週目標の夜中の4時にディスク容量を確認してメールで送って!
- 毎日1時にウィルスチェックツールの定義ファイルを更新して!
- 1分おきにpingを特定ホストに投げて死活監視を行い、落ちていたらメールを送って!
cron の使用例
▼cronの設定ファイル
1 |
# vi /etc/crontab |
1 |
59 23 20 * * /home/vagrant/work.sh |
実行時間:左から「分」「時」「日」「月」「曜日」を指定。
曜日 | 0~6 = 日曜~土曜 |
* | 日時曜日指定なしという意味 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
▼毎月20日の 23:59 に、シェルスクリプト「aaaa.sh」を実行 59 23 20 * * /home/username/aaaa.sh ▼毎週金曜日の17:00に、シェルスクリプト「aaaa.sh」を実行 0 17 * * 5 /home/username/aaaa.sh ▼5分おきに、シェルスクリプト「aaaa.sh」を実行 「/5」と表記すると実行間隔として設定する事ができます。 */5 * * * * /home/username/aaaa.sh ▼毎日の10時と20時に、シェルスクリプト「aaaa.sh」を実行 0 10 * * * /home/username/aaaa.sh 0 20 * * * /home/username/aaaa.sh ▼毎日のお昼12時に、シェルスクリプト「aaaa.sh」を実行 0 12 * * * /home/username/aaaa.sh |
cronの実行結果をメールで送信
cron の実行結果をメールで送る場合は、crontab に「MAILTO=”info@example.com”」の記述を行います。
下記の場合だと3時~4時の間に実行されるShellScriptの結果の標準出力がそれぞれ4通のメールとして「info@example.com」に送信されます。
結果をメールで送る設定例
1 2 3 4 5 |
MAILTO="info@example.com" 0 3 * * * root /usr/local/bin/df.sh 15 3 * * * root /usr/local/bin/freshclam.sh 30 3 * * * root /usr/local/bin/sa-learn-filter.sh 0 4 * * * root /usr/local/bin/maildir_clamscan.sh |