cron 作业时间

mus*_*afa 8 cron

我想在 9:30 开始 cron 工作,然后每 5 分钟工作一次,然后每天 16:30 停止。这种调度可以在一个还是我需要两个 cron 作业?

web*_*toe 10

我认为是这样的:

30/5 9-16 * * *  /usr/bin/script_to_run.sh
Run Code Online (Sandbox Code Playgroud)

有关时序语法的详细信息,请参阅wiki 页面。我建议使用一个脚本来测试它,该脚本将它运行的时间记录到一个文件中。

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log
Run Code Online (Sandbox Code Playgroud)

  • 我很惊讶地看到使用了“30/5”,所以我查看了 cron 源代码,特别是 entry.c,它解析了 crontab 的每一行。在函数 get_range() 中,它检查第一个数字(在本例中为 30)后面的字符是否为“-”。如果不是,则永远不会看到“/”。这是一个错误;它应该打印形式的警告(或错误消息),“'/' 仅在 * 或 nm 范围后才有意义”。对不起各位! (2认同)

Pau*_*xie 7

你需要三个 crontab 条目:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh
Run Code Online (Sandbox Code Playgroud)

请不要因为 crontab 条目的奇怪和无用的语法而责怪 linux、bsd 或我。这是在 AT&T 贝尔实验室发明的,后来作为 POSIX 的一部分进行了标准化。