我使用 cron 在白天每 15 分钟执行一个 python 脚本。在夜间,它应该每小时运行一次。
我为此做了 2 个条目:
0 23-5 * * * python /var/www/script.py > /dev/null 2>&1
*/15 6-22 * * * python /var/www/script.py >/dev/null 2>&1
白天运行的那个效果很好。这是 /var/log/syslog 中该脚本的最后一个条目:
Jan 26 22:45:01 web CRON[20278]: (sysadmin) CMD (python /var/www/script.py > /dev/null 2>&1)
但 23:00 之后该脚本没有条目。该脚本的下一个条目是:
Jan 27 06:00:01 web CRON[26367]: (sysadmin) CMD (python /var/www/script.py > /dev/null 2>&1)
这就是“day-cron”条目再次开始。这两个条目都是在用户“sysadmin”的同一个 crontab 中创建的。
知道这里的问题是什么吗?或者我还能去哪里寻找线索?
我正在运行 Ubuntu 16.04.1 LTS - 4.4.0-42-generic。
答案1
更改23-5
为23,0,1,2,3,4,5
或者您可以添加两行,如下所示:
0 23 * * * python /var/www/script.py > /dev/null 2>&1
0 0-5 * * * python /var/www/script.py > /dev/null 2>&1
或者就像其他人所说的那样(我忘了你可以混合搭配):
0 23,0-5 * * * python /var/www/script.py > /dev/null 2>&1
之所以?因为23-5
不是有效范围。该范围只能是从低值到高值。