加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux Crontab命令语法详解

发布时间:2016-10-31 01:47:48 所属栏目:Linux 来源:网络整理
导读:crontab 命令的用途就是:提交、编辑、列出或除去 cron 作业。 1、语法 crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v [UserName] | File ] 2

6、crontab 文件条目格式

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

分 时 日期 月 星期 command

这些字段接收以下值:

分 0 到 59

时 0 到 23

日期 1 到 31

月 1 到 12

星期 0 到 6 (星期日到星期六)

7、command shell 命令

必须为每个字段指定一个值。除了 command 字段,这些字段可以包含以下内容:指定范围内的一个数。要在 5 月运行一个命令,在 month 字段指定 5 。

两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行 cron 作业,把 2-5 放到 weekday 字段中。 由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在 day_of_month 字段中可指定 1,31。

*(星号),意味着所有的允许值。要每个小时运行一个作业,在小时字段指定一个星号。

注: 任一字符前如有一个反斜杠符号(包括 %)会引起字符被字面上的处理。天的规范是由两个字段(月的天和星期的天)组成的。如果指定两者都为元素的一个列表,这两个字段均被包含在其中。例如,如下条目:

0 0 1,15 * 1 command

将在每个月的第一天和第十五天运行 command,还有每个星期一。要仅在一个字段中指定天,另一字段应包含 * 。

8、指定命令

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

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

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

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

查看本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/

9、标志

-e UserName 编辑用户的 crontab 文件的副本,或者,如果一个有效的 UserName 的 crontab 文件不存在则创建一个空的文件进行编辑。当编辑完成后,文件被到 crontab 目录作为用户的 crontab 文件。

-l UserName 列出用户的 crontab 文件。

-r UserName 从 crontab 目录除去用户的 crontab 文件。

-v UserName 列出用户 cron 作业的状态。

10、安全性

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

事件               信息

CRON_JobRemove     列出哪一个用户除去了 cron 作业和除去的时间。

CRON_JobAdd        列出哪一个用户添加了 cron 作业和添加的时间。

有关如何正确选择和分组审计事件以及如何配置审计事件数据收集的更详细信息,请参阅 《安全性》 中的 Setting up Auditing。

11、退出状态

该命令返回以下退出值:

0 成功完成。

>0 发生错误。

12、示例

要将名为 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.

13、文件

/var/adm/cron/FIFO 指定的管道,当用 crontab 或 at 命令提交新作业时,它将消息发送到 cron 守护程序。

/var/spool/cron/crontabs 指定 crontab 缓冲池区域。

/var/adm/cron/cron.allow 指定用户列表,这些用户被允许访问 crontab 命令。

/var/adm/cron/cron.deny 指定用户列表,这些用户不被允许访问 crontab 命令。

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读