我正在计划每半小时从10PM到1AM(包括两者)安排cron。
我尝试过此*/30 22-0 * * *
晚上11:30后似乎无法正常工作或具体来说,这要到11:59 PM才行。
Cron并不总是提供语法来指定您希望在单行中显示的时间,但是通常有一种使用两行(或更多行)的解决方法。
根据您的描述,显然其上限小于其下限的范围不会环绕;而是似乎延伸到一天/小时/无论什么时候结束。在您的情况下,22-0
显然表示小时22
和23
,例如22-5
可能表示同一意思。 (此手册页尚不清楚。)
这应该可以解决问题,尽管我没有机会进行测试:
*/30 22-23 * * * <command> # 22:00, 22:30, 23:00, 23:30
*/30 0 * * * <command> # 00:00, 00:30
0 1 * * * <command> # 01:00
基于另一个答案:通过合并22-23和0小时的记录,您可以使克朗减少一行:
*/30 0,22-23 * * * <command>
0 1 * * * <command>
在某些UNIX操作系统中,这可能不起作用,您应该明确提及小时和分钟:
0,30 0,22,23 * * * <command>
0 1 * * * <command>