我遇到了一个奇怪的问题。使用 Debian 6 和 crontab -e(以 root 身份),以下 cronjob很好用:
*/5 * * * * bin/sh /root/backup
但它不起作用如果我将其设置为在特定时间运行:
00 12 * * * bin/sh /root/backup
不幸的是,日志文件中根本没有任何错误。
date
显示正确的时间和时区。
我还在 /etc/default/rcS 中将 UTC 更改为“no”而不是“yes”,但这没有帮助。
我完全不知道原因是什么,希望您能为我找到解决方案!
答案1
正如前面提到的,请确保文件末尾有一个空行。我也不会使用,bin/sh
而是使用绝对路径(/bin/sh
)。
可能存在的问题(如果没有错误,则可能被视为错误)是您指定的00
而不是0
。时间的规范(取自手册页)是:
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
请注意,他们指定了一个单数数字0
。
答案2
确保包含特定日期的行不是 crontab 中的最后一行。上次我检查时,Vixie cron 仍然有一个 bug,即所有 crontab 行都需要换行才能正常工作。
也许最后的一条评论就足够了。
答案3
您缺少 cron 作业的用户部分。
0 12 * * * root /bin/sh /root/backup