像大部分
Linux使用者一样,您可能需要在某时候进行重性工作的排程。这
类工作可能频繁到几
: }3 E$ |9 O( i9 ]" s- I# [4 i
分钟一次,也可能一年只有一次。这些工作可以使用``cron''工具完成。
) Y+ o" J$ r4 ^) \3 G
cron工具在Linux上的应用和和在其他
Unix上所应用的非常相似。然而,RedHat加上了一点
& v& a; k9 G0 A/ G* E- M
和其他Linux发行版不同的工作排程方法。在其他的发行版,排程资讯位於
系统的``crontab''档
" J0 J+ b, W% }% j8 P- s+ r) [(位在``/etc/''目录),使用下面的格式:
% ~4 v+ q/ b: D) Uminutehourdaymonthyearcommand
8 G: T- y# M, U9 M) s5 C% Q8 J }$ k& ?$ _1 ^- _3 d+ W
! _6 W- I0 {1 z8 Z& p5 d- ~( a) L! e
% ~7 d, |4 u9 x* x( ~
您可以指定整数的
时间要素(例如.1到12表示从一月到十二月),或者用``*''符号作为万用字元
6 ]* I4 p! f- r' T" a$ Q* \+ L
指定一个或更多的要素(例如.*在月的要素部分表示指令会在每月的特定日期及时间执行)。这里是
7 E1 _6 |) c8 c! e7 M
一些例子:
, R; H) D- x2 D3 P7 l
#Mailthesystemlogsat4:30pmeveryJune15th.
* x" Z; X4 H& ]) I# s. n- y30161506*forxin/var/log/*;docat${x}│mailpostmaster;done
0 H' h/ w: ]! ^ }5 H9 x' f6 |: f" p: q3 z$ Q ~* M
#Informtheadministrator,atmidnight,ofthechangingseasons.
( a5 m, Q) a5 D: k
00002004*echo'Woohoo,springishere!'
! }4 L" Y9 l+ H+ G2 x. z) B
00002006*echo'Yeah,summerhasarrived,timetohitthebeach!'
2 r" I1 I; e( h0 X, n
00002010*echo'Fallhasarrived.Getthosejacketsout.:-('
3 ?& y: g" A4 z4 m9 ]" K' c00002012*echo'Timefor5monthsofmisery.;-('
6 B' u! y2 a& s& x
' g# c" x4 {/ c
3 b% x. c* F- @% m- q( k* C
' C1 j3 t% K/ [) @2 ?- T. g注意该指令会输出到一个
标准出口(亦即.一个终端机),像是上面使用``echo''的例子会将输出寄
/ F8 `+ Q4 M, S" b& J" F给``root''帐号。如果您想要避免它,只要像下面将输出导引到一个空的设备:
5 V4 d3 [8 e2 L9 u7 J0006***echo'Ibugthesystemadministratordailyat6:00am!'%26gt;/dev/null
. o0 s3 v: t6 E0 Y1 S" a7 ~% \8 A
) v3 x7 M' \0 Z! @' I6 g+ Z6 u8 @( g- A: m1 {4 Q
+ X7 N3 @% o& T# z1 ^; |( Y在多出的标准``crontab''项目,RedHat加上了一些目录:
0 A1 K9 o$ R2 Y; m: |/etc/cron.hourly/
. c6 D, g& {$ ]
/etc/cron.daily/
5 [/ u2 m7 M& |8 i# O1 R/etc/cron.weekly/
- N- g3 D% h, ^3 ?. O
/ X6 p7 n: N$ ~4 c3 C; M9 }6 V E
( N/ W. S( u, E- u1 n2 c6 I Q- X; V8 l6 z) O4 T" M' ^
和他们的名称所建议的一样,可执行档可以放在任何这些目录,并且将会每小时,每日及每执行。这节
0 c' g. P7 D: r7 ~' @3 T N0 j% A
省了一些设定频繁工作的时间;只要将可执行的script或程式(或到任何其他储存媒体的符号连结)放到
% x2 z" F @2 Q( z合适的目录内,就可以不管他们了