AIX 里的crontab如何使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AIX 里的crontab如何使用
crontab命令
用途
提交、编辑、列出或除去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 文件的一个示例:
root
nick
dee
sarah如果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这些字段接收以下值:
minute 0 到59
hour 0 到23
day_of_month 1 到31
month 1 到12
weekday 0 到6(星期天到星期六)
command shell 命令
必须为每个字段指定一个值。除了command 字段,这些字段可以包含以下内容:
指定范围内的一个数。要在 5 月运行一个命令,在月字段指定5。
两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行cron 作业,把2-5 放到weekday 字段中。
由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在日_of_月字段中可指定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 文件。