码迷,mamicode.com
首页 > 其他好文 > 详细

chapter16:例行性工作(crontab)之二:循环执行的例行性工作调度

时间:2016-01-21 00:21:18      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

  循环执行的例行性工作调度是由cron(crond)这个系统服务来控制的,这个服务是系统默认启动的。Linux也提供用户控制例行性工作调度的命令crontab。

一。用户设置

  为了安全起见,我们可以限制能够使用crontab的用户。同at类似,用两个文件进行设置,/etc/cron.allow,/etc/cron.deny。

  当用户使用crontab这个命令的来新建工作调度后,工作就会被记录到/var/spool/cron里面。而且是以帐号来作为判别的。如chuiyuan在使用这个从后,工作会记录到/var/spool/cron/chuiyuan。不要使用vim来编辑这个文件,因为可以出错。

crontab语法

crontab [-u username] [-l |-e |-r]

-u:只有root才可以用,也就是帮助其它用户建立crontab工作调度。

-e:编辑crontab的工作内容。

-l:查看

-r:删除所有的,如果想只删除一项,则使用-e来编辑。

 

二。系统的配置文件/etc/crontab

  上面的crontab -e是对用户的cron来设计的,里面的crontab实际是/usr/bin/crontab这个可执行文件,如果是系统的例行性工作时,则编辑/etc/crontab这个文件,这是一个文本文件。

  基本上,cron这个服务检测的时间是分钟,所以cron每分钟都会去读取一次/etc/crontab与/var/spool/cron里面的内容。因此当我们修改完/etc/crontab这个文件后,cron就会自动来执行。

要注意的是,有的系统可以是将crontab读取到了内存中,因此在修改后请重启下crond这个服务。  先看看/etc/crontab这个文件的内容

技术分享

我们可以自己修改这个文件,由于centos有 run-parts(一个bash scripts,运行后面接的目录下的所有可执行文件)这个命令。所以/etc/crontab这个文件支持两种方式的执行,

一种是直接命令执行,一种是以目录来规划。

 

三。可唤醒停机期间的工作任务

  如果主机是24小时不关机的,那么我们只要有at与crond两个服务来管理我们的例行性工作调度就可以了,如果不是24小时不关机,则要有anacron程序(不是服务)。它并不是用来替代crontab,而是以天为单位或者是在开机后立刻执行anacron这个操作。它会去查看在停机期间没有进行的crontab任务,并将这个任务执行一次,然后anacron就自动停止了。所以anacron其实也是通过crontab来运行的,因此它的运行时间通常有两个,一个是系统开机时,一个是写入crontab的调度中。

anacron这个程序在centos中已经进入crontab的调度,查看如下

技术分享

技术分享

接下来我们看看/etc/anacrontab里面的内容

技术分享

 

chapter16:例行性工作(crontab)之二:循环执行的例行性工作调度

标签:

原文地址:http://www.cnblogs.com/chuiyuan/p/5146967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!