2009年11月24日火曜日

crontab

**概要 [#y9fe2692]
一般にcrontabコマンドで編集されたスケジュール内容は、crondデーモンにより実行される。
crondはバックグラウンドで稼動し、毎分ごとに実行すべきスケジュールがないか確認し、
もし実行すべきジョブがあれば、それを実行する。このジョブは「cron job」とも呼ばれる。
**記法 [#e71ec718]
-特殊記号
--コンマ (,) で値のリストを指定する: 例) "1,3,4,7,8"
--ダッシュ (-) で値の範囲を指定する: 例) "1-6" ("1,2,3,4,5,6"という指定と同じ意味)
--アスタリスク (*) でそのフィールドで取りうる全ての値を表現する。例えば、時をあらわすフィールドでは「毎時」という意味となる。
-フィールド
 # (行頭の # マークはコメント行を示す)
 # +------------ 分 (0 - 59)
 # | +---------- 時 (0 - 23)
 # | | +-------- 日 (1 - 31)
 # | | | +------ 月 (1 - 12)
 # | | | | +---- 曜日 (0 - 6) (日曜日=0)
 # | | | | |
 # * * * * * 実行されるコマンド
**例 [#qf24209b]
 43 23 * * *               23:43に実行
 12 05 * * *             05:12に実行
 0 17 * * *                17:00に実行
 0 17 * * 1                毎週月曜の 17:00に実行
 0,10 17 * * 0,2,3         毎週日,火,水曜の 17:00と 17:10に実行
 0-10 17 1 * *             毎月 1日の 17:00から17:10まで 1分毎に実行
 0 0 1,15 * 1              毎月 1日と 15日と 月曜日の 0:00に実行
 42 4 1 * *              毎月 1日の 4:42分に実行
 0 21 * * 1-6            月曜日から土曜まで 21:00に実行
 0,10,20,30,40,50 * * * * 10分おきに実行
 */10 * * * *        10分おきに実行
 * 1 * * *         1:00から 1:59まで 1分おきに実行
 0 1 * * *         1:00に実行
 0 */1 * * *        毎時 0分に 1時間おきに実行
 0 * * * *         毎時 0分に 1時間おきに実行
 2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02に実行
 30 5 1,15 * *       1日と 15日の 5:30に実行
**注意 [#s08389d6]
最もよく見られるミスの一つは、cron ジョブのテストの際に見られる。
テストの際には、少なくとも2分以上先の時刻を実行時刻として指定する必要がある。
これはcrontabファイルの再読み込みは、編集後の次の分時にのみ行われるためである。
例えば、現在時刻が12:05である場合、crontabファイルの再読み込みが12:06:01に行われるため、
次のジョブをスケジュールするには少なくとも12:07以降を指定する必要がある。
これに対処してテストをすぐに行うには、cronサービス自体を再起動する方法もある。

**参考 [#s70d1e4a]
-[[crontab-Wikipedia-:http://ja.wikipedia.org/wiki/Crontab]]
-[[cronの設定ガイド:http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html]]

0 件のコメント:

コメントを投稿