crontab -e 是针对用户的cron来设计的,如果是系统的例行性任务,该怎么办?是否还是需要以crontab -e来管理例行性命令?当然不需要,您只需要编辑/etc/crontab文件就可以了。需要注意的是:crontab -e的作用其实是/usr/bin/crontab这个执行文件,但是/etc/crontab是个纯文本文件,可以root的身份编辑这个文件。
 
基本上,cron服务的最低检测时间单位是分钟,所以cron会每分钟读取一次/etc/crontab与/var/spool/cron中的数据内容,因此,只要您编辑完/etc/crontab文件并且保存之后,crontab时设定就会自动执行。
 
注意:在linux下的crontab会自动帮我们每分钟重新读取一次/etc/crontab的例行工作事项,但是某些原因或在其他的unix系统中,由于crontab是读到内存中,所以在您修改完/etc/crontab之后可能并不会马上执行,这时请重新启动crond服务。
/etc/rc.d/init.d/crond   restart
 
好了,下面看看/etc/crontab文件的内容:

vi   /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

#   run-parts
01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly
02 4 * * * root   nice   -n   19    run-parts   /etc/cron.daily
22 4 * * * root    nice   -n   19   run-parts   /etc/cron.weekly
42 4 1 * * root   nice   -n    19  run-parts   /etc/cron.monthly
 
分时日月周   用户   参数设定值   参数设定值   指令段
 
从这个文件的内容可以看出,这个文件与输入crontab -e后的内容几乎完全相同,只是下面几个地方有所区别:
 
MAILTO=root:这个字段说明了当/etc/crontab文件中的例行性命令发生错误时,会将错误信息或屏幕显示的信息传递给谁?由于root无法在客户端收信,因此,可以将这个email改成自己普通用户帐号。

01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly:在#run-parts这一行以后的命令,我们可以发现,5个数字后面接的是root,这代表执行的层级为root身份。当然,您也可以root改成其他身份,而run-parts表示后面接的是/etc/cron.hourly是一个目录内(/etc/cron.hourly)的所有可执行文件,也就是说每个小时的01分,系统会以root的身份到/etc/cron.hourly目录下执行所有可以执行的文件。系统本来就默认了这4个目录,您可以将每天需要执行的命令直接写到/etc/cron.daily中,还不需要用到crontab -e程序,很方便。
 
注意:基本上,/etc/crontab支持两种输入指令的方式,一种是直接以指令形式输入,一种则是以目录形式输入。
 
指令形式
 
01   * * * * test   mail   -s   test   test   <   /home/test/test/test.txt
用户是test,且每小时执行一次指令mail……
 
目录形式
 
*/5   *  *  *  * root run-parts   /root/runcron
 
建立一个/root/runcron目录,将每隔5分钟执行一次的可执行文件都写到该目录下,就可以让系统每5分钟执行一次该目录下的所有可执行文件。
   
这样就知道run-parts的作用了吧!此外,与crontab -e规划中不同的是,多了一个用户层级的概念。通常,我们都是以root的角度来规划例行命令的,但是总有不需要root的场合,因此可以使用这个层级来规范该程序的用户所属。
 
如果每个流程都在同一时间启动,那么在某个时段,系统会非常的繁忙,所以这时必须分别设定。可以这样做:

1,6,11,16,21,26,31,36,41,46,51,56 * * * * root …………   // 省略号代表命令

2,7,12,17,22,27,32,37,42,47,52,57 * * * * root …………

3,8,13,18,23,28,33,38,43,48,53,58 * * * * root …………

4,9,14,19,24,29,34,39,44,49,54,59 * * * * root …………

注意,要用","分隔时,不要带有空格。如此一来,则可以将每5分钟工作的流程分别安排在不同的时刻进行。