Linux中的crond


cron来自于希腊单词chronos,也就是"时间",他是Linux下自动执行指定任务的程序,通常我们大陆这边习惯称之为"计划任务",台湾那边习惯称之为例行性程序。

该服务是Linux的内置服务,一般会自动启动的,我们也可以

通过/sbin/service crond start来启动它,

通过/sbin/service crond stop来停止,

通过/sbin/service crond restart来重启,

通过/sbin/service crond reload来重新加载。

我们可以在/etc/crontab中编辑我们需要的计划任务,他是系统级别的任务配置。当然我们也可以使用crontab -e来编辑用户级的计划任务。通常/etc/crontab里面有语法范例,他需要指定任务的执行者,但是用户级的计划任务就不需要指定了。

 

每个计划任务用一行表示,他可以是一个命令,也可以是一个命令目录,它的格式是:minute hour day month dayofweek command,而且在时间的表示上,星号*表示可以用来代表所有值,而短线-表示指定一个范围,而正斜线/可以用来指定频率,而井号#开头表示是注释,

查看当前用户的cron配置,我们使用crontab -l命令,

编辑当前用户的cron配置,我们使用crontab -e命令,

删除所有用户的cron配置,我们使用crontab -r命令,

配置系统级别的计划任务,我们直接编辑/etc/crontab文件即可。

 

cron根据时间来确定对重复任务的执行,他假定系统持续运行,如果当某任务被调度时不在运行,该任务就无法执行,他不会自动延后。cron守护进程每分钟都会检查/etc/crontab文件,/etc/cron.d目录,/var/spool/cron目录中的内容,如果发生了改变,会把它们加载入内存。

 

通常我们用/etc/cron.allow和/etc/cron.deny文件来限制对cron的使用,这两个文件都是每行一个用户,两个文件都不允许空格。如果使用控制文件被改变了,cron守护进程也就是crond不必被重启。如果cron.allow文件存在,那么只有其中列出的用户能够使用计划任务,而且cron.deny文件会被忽略。如果cron.allow不存在,那么所有在cron.deny中列出的文件都被禁止使用计划任务。

 

相关内容