系统的crontab设定:/etc/crontab

来源:互联网 发布:js改变html属性值 编辑:程序博客网 时间:2024/06/05 02:54
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分钟工作的流程分别安排在不同的时刻进行。
阅读(474) | 评论(0) | 转发(0) |
0

上一篇:cacti教程

下一篇:MySQL一级防范检查列表

相关热门文章
  • 定时器/计数器的应用实例 ...
  • C51单片机中断认知
  • 进口商管理系统商管理软件...
  • Linux下用crontab定时执行PHP...
  • 组合开关的双速模式
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • 什么是shell
  • linux socket的bug??
  • linux的线程是否受到了保护?...
  • 请教想查12个月的数据条数,看...
  • new/delete 和malloc/free 有...
  • ubuntu下hadoop环境的搭建...
  • 求助:如何用Linux架设ISATAP...
  • redhat图形界面不出先登录界面...
给主人留下些什么吧!~~