尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

调度周期性用户作业

调度周期性用户作业 描述周期性用户作业周期性作业是按计划重复运行的作业。红帽企业 Linux 系统提供了 crond 守护进程其默认为已启用和启动。crond 守护进程会读取多个配置文件每个用户对应一个以及一组系统范围的文件。每个用户都有一个个人文件可使用crontab -e命令来编辑。在执行周期性作业时这些配置文件为用户和管理员提供详细控制。如果调度的作业未编写为使用重定向则 crond 守护进程将通过电子邮件将生成的输出或错误发送给作业所有者。调度周期性用户作业使用 crontab 命令管理调度的作业。以下列表显示了本地用户可用于管理其作业的命令特权用户可以使用 crontab 命令-u选项来管理其他用户的作业。crontab 命令从不用于管理系统作业也不建议以 root 用户身份使用 crontab 命令因为它能够利用配置为以 root 身份运行的个人作业。按照描述周期性系统作业的后续章节中所述配置此类特权作业。描述用户作业格式默认情况下crontab -e命令调用 vim 编辑器除非为其他编辑器设置了 EDITOR 环境变量。每个作业必须在 crontab 文件中使用唯一的一行。在编写周期性作业时请遵循以下建议以获得有效的条目空行是为了方便阅读以井号 (#) 开头的行是注释格式为 NAMEvalue 的环境变量会影响声明位置后的所有行标准变量设置包括 SHELL 变量用来声明用于解释 crontab 文件其余行的 shell。MAILTO 变量决定谁应接收通过电子邮件发送的输出。crontab 文件中的字段按以下顺序显示分钟小时几号几月星期几命令当 Day of the month 或 Day of the week 字段使用 * 字符之外的相同值时命令会在相应的时间执行。例如要在每月 11 号或每周五 12:1524 小时制运行命令请使用以下作业格式15 12 11 * Fri command前五个字段全部使用相同的语法规则使用*字符在字段的每个可能实例执行。数字可用于指定几点几分、几号或周几。对于星期几0 等于星期日1 等于星期一2 等于星期二依此类推。7 也等于星期日。使用x‑y表示范围它包括 x 和 y 值。使用x,y表示列表。列表也可以包含范围例如 Minutes 列中的5,10‑13,17表示作业在每个整点后的第 5、10、11、12、13 和 17 分运行。*/x表示 x 的间隔例如 Minutes 列中的*/7表示每七分钟运行一次作业。此外可以使用三字母英文缩写来表示月份和星期几例如 Jan、Feb 以及 Mon、Tue。最后一个字段包含使用默认 shell 执行的完整命令及选项和参数。如果命令包含未转义的百分比符号 (%)则该百分比符号将被当作换行字符且百分比符号之后的所有内容将作为 stdin 输入传给命令。周期性用户作业示例以下作业将在每年 2 月 3 日上午 9 点整执行命令/usr/local/bin/yearly_backup。在示例中二月用数字 2 表示因为它是一年中的第二个月份。0 9 3 2 * /usr/local/bin/yearly_backup以下作业将在上午 9 点和下午 16 点之间每五分钟向该作业的所有者发送包含词语 Chime 的电子邮件但仅仅是七月份的每个星期五。*/5 9‑16 * Jul 5 echo Chime上文中 9‑16 小时范围表示作业定时器将在 9 点 (09:00) 启动并一直持续到 16 点末尾 (16:59)。作业将从 09:00 开始执行在 16:55 结束执行因为 16:55 再过五分钟是 17:00而这超出了给定的小时范围。如果范围针对的是几个时数而非单个值则该范围内的所有时数都将匹配。因此对于 9‑16 的时数本例从 09:00 到 16:55 每五分钟匹配一次。以下作业将在每个工作日周一到周五午夜前的两分钟运行/usr/local/bin/daily_report命令。58 23 * * 1‑5 /usr/local/bin/daily_report以下作业将在每个工作日周一到周五上午 9 点执行 mutt 命令从而将邮件消息 Checking in 发送给收件人 developerexample.com。0 9 * * 1‑5 mutt -s Checking in developerexample.com % Hi there, just checking in.
返回列表