读书人

cron配备

发布时间: 2012-07-18 12:05:40 作者: rapoo

cron配置
用途

提交、编辑、列出或除去?cron?作业。?

语法crontab?[?-e?[UserName]?|?-l?[UserName]?|?-r?[UserName]?|?-v?[UserName]?|?File?]

描述

这个?crontab?命令提交、编辑、列出或除去?cron?作业。一个?cron?作业是一个命令,其运行是由?cron?守护程序在规则的调度间隔执行的。要提交一个?cron?作业,指定?crontab?命令用?-e?标志。crontab?命令调用一个编辑会话,允许创建一个?crontab?文件。在这个文件中,为每个?cron?创建条目。每个条目必须是一种?cron?守护程序可接受的格式。要得到创建条目的信息,参阅?crontab?文件条目格式。

当创建完条目和退出文件后,crontab?命令将它复制到?/var/spool/cron/crontabs?目录,并把它放到一个文件中,此文件的名称是当前的用户名。如果以用户名命名的文件已存在于?crontabs?目录中,crontab?命令会覆盖它。

同样的,可以通过指定文件参数创建?crontab?文件。如果此文件已经存在,格式必须是?cron?守护程序所需要的。如果文件不存在,crontab?命令就调用编辑器。如果?EDITOR?环境变量存在,此命令就调用它指定的编辑器。否则,crontab?命令调用?vi?编辑器。

要列出?crontab?文件的内容,就指定?crontab?命令并采用?-l?标志。要除去存在的文件,采用?-r?标志。可选的?UserName?参数可被?crontab?文件的所有者或者?root?用户来使用,为指定的用户编辑、列出、除去或验证?cron?作业的状态。如果?UserName?是无效的,就会产生错误消息并退出程序。如果可选的?UserName?参数没有被指定,这个?crontab?标志对于?root?用户和当前用户可用。

安全性只有?root?用户和?crontab?文件的所有者可以在?-e-l-r?和?-v?标志后面使用?UserName?以编辑、列出、除去或验证指定用户的?crontab?文件。

cron?守护程序

这个?cron?守护程序运行的命令和?crontab?文件条目是相对应的。如果不重新定向?cron?作业的输出为标准输出或标准错误,cron?守护程序就会通过电子邮件告知您任何命令输出或错误。如果在?crontab?文件中指定了不正确的?cron?作业,这个?cron?守护程序不运行这个作业。

cron?守护程序只在?cron?守护程序被初始化时检查?crontab?文件。当用?crontab?命令改变?crontab?文件时,指示变化的消息被发送到?cron?守护程序。这消除了在规则的调度间隔检查新的或改变的文件的开销。

控制使用?crontab?命令

/var/adm/cron/cron.allow?和?/var/adm/cron/cron.deny?文件控制哪一个用户可以使用?crontab?命令。root?用户可以创建、编辑或删除这些文件。这些文件中的条目是用户登录名,每行一个名称。如果登录标识和多个的登录名称相关联,这个?crontab?命令采用第一个在?/etc/passwd?文件中的登录名称,而不管当前实际使用哪一个登录名称。而且,要允许用户启动?cron?作业,应该使用?chuser?命令将?/etc/security/user?文件中的守护程序属性设置为?TRUE。

以下关于?cron.allow?文件的一个示例:?

rootnickdeesarah

如果?cron.allow?文件存在,只有在文件中出现其登录名称的用户可以使用?crontab?命令。root?用户的登录名必须出现在?cron.allow?文件中,如果这个文件存在的话。系统管理员可以明确的停止一个用户,通过使用?crontab?命令,同时在?cron.deny?文件中列出用户的登录名。如果只有?cron.deny?文件存在,任一名称没有出现在这个文件中的用户可以使用?crontab?命令。

如果以下一个条件成立,用户将不能使用?crontab?命令:cron.allow?文件和?cron.deny?文件不存在(只允许?root?用户)。? cron.allow?文件存在,但用户的登录名并不列在其中。? cron.deny?文件存在,并且用户的登录名列在其中。

如果?cron.allow?和?cron.deny?文件都不存在,只有被?root?用户授权的人可以用?crontab?命令提交一个作业。

crontab?文件条目格式

一个?crontab?文件包含每个?cron?作业的条目。条目由换行字符分开。每个?crontab?文件条目包括?6?个字段,它们被空格或制表符以以下格式分开:?
?minute??hour??day_of_month??month??weekday??command

这些字段接收以下值:

minute0?到?59hour0?到?23day_of_month1?到?31month1?到?12weekday0?到?6?(星期日到星期六)commandshell?命令必须为每个字段指定一个值。除了?command?字段,这些字段可以包含以下内容:指定范围内的一个数。要在?5?月运行一个命令,在?month?字段指定?5?。? 两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行?cron?作业,把?2-5?放到?weekday?字段中。? 由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在?day_of_month?字段中可指定?1,31。? *(星号),意味着所有的允许值。要每个小时运行一个作业,在小时字段指定一个星号。 ?
注:?任一字符前如有一个反斜杠符号(包括?%)会引起字符被字面上的处理。天的规范是由两个字段(月的天和星期的天)组成的。如果指定两者都为元素的一个列表,这两个字段均被包含在其中。例如,如下条目:? ?
0?0?1,15?*?1?command
将在每个月的第一天和第十五天运行?command,还有每个星期一。要仅在一个字段中指定天,另一字段应包含?*?

指定命令

这个?cron?守护程序运行命名于所选日期和时间的第六个字段中的字段。如果包含一个?%?(百分号)在第六字段,cron?守护程序像命令调用一样处理所有的任务,并使所有的后续任务在标准输入上可用,除非转义百分号?(\%)。空行和第一个非空字符是编号标记(#)将被忽略。如果命令含有反斜杠?(\)?的参数,反斜杠前应加另一个反斜杠。?

注:shell?只运行该命令字段的第一行。所有其他的行作为标准的输入对于命令可用。

cron?守护程序从?HOME?目录中启动一个子?shell。如果调度一个命令运行,这时您尚未登录,并且希望在?.profile?文件中的命令运行,这个命令必须明确的读取您的?.profile?文件。

cron?守护程序为每个?shell?提供了一个缺省的环境,定义了?HOME,?LOGNAME,?SHELL?(=/usr/bin/sh)?和?PATH?(=/usr/bin)。

标志?

-e?UserName编辑用户的?crontab?文件的副本,或者,如果一个有效的?UserName?的?crontab?文件不存在则创建一个空的文件进行编辑。当编辑完成后,文件被到?crontab?目录作为用户的?crontab?文件。-l?UserName列出用户的?crontab?文件。-r?UserName从?crontab?目录除去用户的?crontab?文件。-v?UserName列出用户?cron?作业的状态。安全性

审计事件:如果审计子系统已经被正确的配置和启用,crontab?守护程序就会当每次执行命令时产生以下审计记录(或事件):

事件信息CRON_JobRemove列出哪一个用户除去了?cron?作业和除去的时间。CRON_JobAdd列出哪一个用户添加了?cron?作业和添加的时间。有关如何正确选择和分组审计事件以及如何配置审计事件数据收集的更详细信息,请参阅?《安全性》?中的?Setting?up?Auditing。

退出状态

该命令返回以下退出值:

0成功完成。>0发生错误。示例
    要将名为?mycronjobs?的文件复制到?/var/spool/cron/crontabs?目录中,输入以下内容:?
    crontab?mycronjobs
    文件将复制为:?
    /var/spool/cron/crontabs/<username>
    其中?<username>?是您当前的用户名。? 要每小时将时间写入控制台(以小时的形式),请输入:?
    0?*?*?*?*?echo?The?hour?is?`date`?。>/dev/console
    要在每个星期一、星期三和星期五的?6:30?a.m.?运行?calendar?命令,请输入:?
    30?6?*?*?1,3,5?/usr/bin/calendar
    要在一年中每天?6:30?运行?calendar?命令,请输入:?
    30?6?*?*?*?/usr/bin/calendar
    要在八月每天午夜运行名为?maintenance?的脚本,请输入:?
    0?0?*?8?*?/u/harry/bin/maintenance
    为命令的标准输入定义文本,请输入:?
    0?16?*?12?5?/usr/sbin/wall%HAPPY?HOLIDAY!%Remember?to?turn?in?your?time?card.
    在?%?(百分号)之后定义?wall?命令的标准输入的文本:?
    HAPPY?HOLIDAY!?Remember?to?turn?in?your?time?card.

文件?

/var/adm/cron/FIFO指定的管道,当用?crontab?或?at?命令提交新作业时,它将消息发送到?cron?守护程序。/var/spool/cron/crontabs指定?crontab?缓冲池区域。/var/adm/cron/cron.allow指定用户列表,这些用户被允许访问?crontab?命令。/var/adm/cron/cron.deny指定用户列表,这些用户不被允许访问?crontab?命令。相关信息

auditpr?命令、sh?命令、wall?命令。

cron?守护程序。

安全性》?中的?Auditing?Overview?解释了更多有关审计和审计事件的信息。?注意:crontab -u user -e 编辑结束后请用 :wq! 强制保存退出。每20分钟执行一次的批处理格式:

*/3?*?*?*?*? 或 0,20,40 *?*?*?*

修改:cron.allow 文件给用户授crontab操作权限

读书人网 >操作系统

热点推荐