cronの特徴と使い方について解説
目次
cronとは
cronとは、多くのUNIX系で利用される常駐型プログラムの一種で、利用者の設定した時刻に従って指定されたプログラムを定期的に実行してくれます。
1日1回午前6時だけ実行したいプログラムや、1時間おきに実行したいプログラムなどの定期起動に向いている。
cronの設定ファイル
cronの設定ファイルは下記の通りになります。crondは毎分下記のファイルの内容に変更がないか確認します。
/var/spool/cron/user
利用者は全ユーザー
ユーザーの自動タスク設定ファイル
/etc/crontab
利用者はroot
毎時・毎日・毎月・毎週の自動タスクのメイン設定ファイル
/etc/cron.hourly
利用者はroot
毎時実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.daily
利用者はroot
毎月実行されるタスク設定ファイルを置くディレクトリ
/etc/cron.monthly
利用者はroot
毎月実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.weekly
利用者はroot
毎週実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.d
利用者はroot
上記以外の自動タスク設定ファイルを置くディレクトリ
cronの設定方法
cronの設定を行いますが、まずはオプションの確認を行いましょう。
オプション一覧
実行コマンドの対象と範囲
cronの設定ファイルはcrontab -e で編集することができます。
対象 | 範囲 |
分 | 0~59 |
時 | 0~23 |
日 | 1~31 |
月 | 1~12(jan~descでも可) |
曜日 | 0~7(sun~satでも可) |
オプション -e
cronを設定する
1 |
crontab -e |
オプション -l
設定されているcronを一覧表示
1 |
crontab -l |
オプション -r
cronの削除
1 |
crontab -r |
オプション -u
ユーザーを指定
1 |
crontab -u ユーザー名 |
cronの設定
cronを設定することで一番大事な文字は*を理解しているかどうかです。
*を数字の代わりに入力すると指定しないことになります。
例えば、毎月15日の12時30分にhome/logs/getLog.shを実行させると下記コマンドになります。
1 |
30 12 15 * * ./home/logs/getlog.sh |
毎週月曜日の9時にhome/logs/getAccessLog.shを実行させるには下記コマンドになります。
1 |
00 9 * * 1 ./home/logs/getAccessLog.sh |
30分おきにhome/logs/getErrorLog.shを実行させるには下記コマンドになります。
1 |
*/30 * * * * ./home/logs/getErrorLog.sh |
/30を表記すると、30分おきと表すことができます。