计划工作时间


8

我想在9:30开始执行Cron工作,然后每5分钟工作一次,然后在每天16:30停止工作。这种安排是否可以一次完成,或者我需要两个cron作业?

Answers:


10

我认为以下几点:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

有关计时语法的详细信息,请参见Wiki页面。我建议使用脚本对其进行测试,该脚本将其运行时间记录到文件中。

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log

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

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

请不要怪怪crontab条目的古怪而无用的语法是linux,bsd或我。这是在AT&T贝尔实验室发明的,后来被标准化为POSIX的一部分。


4

我认为您需要三份工作:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.