cronの設定

Linuxサーバの管理や運用では、よくシェルの自動実行を行います。時間や曜日を設定して必要な時期にシェルを実行するためには、cronを使います。この設定の方法がいくつかあるのでまとめてみます。

スポンサーリンク




cron設定ファイルの書き方

実行したい処理ごとに1行づつ書きます。書式は、つぎのとおり。

* * * * * user01 /etc/Test/Test.sh

表記の意味は、表のようになります。

フィールド名 設定内容
0から59で指定。*(ワイルドカード)は1分間ごとの起動。
0から23で指定。*(ワイルドカード)は1時間ごとの起動。
1から31で指定。*(ワイルドカード)は1日ごとの起動。
1から12で指定。*(ワイルドカード)は1月ごとの起動。
曜日 0から7で指定。0=日曜日、1=月曜日、2=火曜日、3=水曜日、4=木曜日、5=金曜日、6=土曜日、7=日曜日。
実行ユーザ 実行ユーザを設定した場合だけ、そのユーザで実行されます。設定が無い場合は、登録したユーザで実行。
コマンド 実行するコマンドやシェルを設定。

各フィールドで使用可能な表記は、次のようになります。

表記例 表記の意味
0,7,23 カンマで区切られた値の時だけ実行されます。分フィールドの場合だと、0分、7分、23分で実行されます。
5-8 ハイフンの前後の値の間だけ実行されます。月フィールドの場合だと、5月から8月まで実行されます。
*/5 スラッシュの後の値の間隔で実行されます。時フィールドの場合だと、5時、10時、15時、20時に実行されます。
1,3,5-8 月フィールドの場合、1月、3月、5月から8月までの6ヶ月、実行されます。
30-50/8 分フィールドの場合、30分から50分までの間に5分間隔で実行されます。(30分、38分、46分、50分に実行されます。

設定例を以下にまとめてみました。

* * * * * :1分ごとに実行。
15 * * * * :毎時15分に実行。
15 10 * * * :毎日10時15分に実行。
15 10 28 * * :毎月28日10時15分に実行。
15 10 28 12 * :毎年12月28日10時15分に実行。
* * * * 1 :毎週月曜日に1分ごとに実行。
15 * * * 1 :毎週月曜日の毎時15分に実行。
15 10 * * 1 :毎週月曜日の10時15分に実行。
* * 11,19 * * :毎月11日、19日に1分ごとに実行されます。
1-5 * * * * :毎時1分から5分の間に1分ことに実行されます。
10 */5 * * * :毎日0時10分、5時10分、10時10分、15時10分、20時10分に実行されます。
2 1-5/3 * * * :毎日1時2分、4時2分、5時2分に実行されます。

設定方法

実行するユーザでログインして、「crontab -e」を実行するとエディタが起動されます。このファイルに上記書式に従って記入します。記入後、内容を保存するとディレクトリ「/var/spool/cron/crontabs」以下にユーザ名のファイルが作成されています。これで登録完了です。rootで実行して他のユーザの登録をする場合は、「crontab -u user01 -e」とします。

設定の確認

設定されている内容を確認するには、「crontab -l」と実行します。登録されている内容が確認できます。

user01@debian:~$ crontab -l
*/10 * * * * /home/user01/test01.sh
*/30 * * * * /home/user01/test02.sh

設定の削除

設定されている内容をすべて削除する場合には、「crontab -r」を実行します。部分的に削除する場合は、「crontab -e」を実行し、削除したい行だけ削除すればよいです。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする