名称:crontab
- M$ \. E" ?1 U$ p9 f- E# Z. S9 B 使用权限:所有使用者 ) x2 j) o* P, X4 {0 j' P9 }
使用方式:
& h& |) K6 ]# c9 g; [ crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
0 J" t! X/ a7 R6 T, o, @ 说明: : @" a+ h+ H& Y1 H' t/ z% K' J
crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
- m) H( y; u b! c& I8 [. @' u 参数: 5 ?0 f0 j( y7 N% a0 f3 \9 X* ]
* a/ V6 ^" W$ d+ i
-e:执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) ) A% w1 t1 E; F; y
-r:删除目前的时程表
6 r) Z% B/ B5 e -l:列出目前的时程表
" u$ }/ P1 O9 ^* h e- D% L, z9 }* d7 l i7 C
时程表的格式如下: 0 N) `, ?& |1 j; [5 d' z; f
f1 f2 f3 f4 f5 program ' e4 T1 g8 I0 U
3 V+ I; j2 t, w4 O
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
$ T! a2 B) i! N9 L! Q, j5 O ] 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推 , w) f3 u# ]9 s$ a: ^" o0 W
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
6 d# m0 Q/ c, D1 g 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推 4 A' L1 z( S! m
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推
$ G+ d6 x* ^) x( f 使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 ' j- S/ e% T% X/ W1 @; o: O
例子:
" R2 N8 }: i) @ 每月每天每小时的第 0 分钟执行一次 /bin/ls: , }! d. y. |1 w, x( H6 U
0 7 * * * /bin/ls
5 L) ?2 C/ E* C; h7 P0 I% i2 ^5 W# {, S/ n& s7 F
在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup: 5 c. K* p" C& w7 ?/ M3 J% s9 j
0 6-12/3 * 12 * /usr/bin/backup
. T/ h* Y% p* Y S$ V7 W% T& e, X! [+ X, J0 M# d3 h. c6 q
周一到周五每天下午 5:00 寄一封信给 alex@domain.name: ' g3 k% D8 @$ B
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata + q6 y2 Z( c8 N0 Y
( j* ~* H9 \" g# ^
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" # W! x$ n9 Y. @, L' Y( f
20 0-23/2 * * * echo "haha"
, Z2 J ]! `1 }' I
) }: L9 V2 O% E9 Y 注意:
8 R" S5 f+ ]" b0 { 当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。 |