我曾经crontab -e
将以下行添加到我的 crontab 中:
* * * * * echo hi >> /home/myusername/test
然而,我没有看到测试文件被写入。这是权限问题,还是 crontab 无法正常工作?
我看到 cron 进程正在运行。我该如何调试这个?
编辑- 询问Ubuntu有一个关于 crontab 的好问题,不幸的是这仍然对我没有帮助。
编辑2- 嗯,看来我的测试文件有 214 行,这意味着在过去 214 分钟内它已被写入每分钟。我不确定问题是什么,但它显然已经消失了。
答案1
您是否添加了cronjob 之后的空行?
答案2
有一些实现cron
(不是全部,我不记得是哪个,但我在 Linux 下遇到过一个)每分钟检查更新的 crontab 文件,并且直到下一分钟才考虑新条目。因此,第一次启动 crontab 可能需要长达两分钟的时间。这可能就是您所观察到的。
答案3
我遇到了同样的问题 - 在我最后添加一个新条目后,工作的 crontab 突然停止了。事实证明,我忘记在最后一行之后添加换行符。
我通过发出命令发现
cat /var/log/syslog | grep crontab
输出显示了问题:
Jul 2 08:16:01 shiva cron[1254]: (*system*) RELOAD (/etc/crontab)
Jul 2 08:16:01 shiva cron[1254]: (*system*) ERROR (Missing newline before EOF, this crontab file will be ignored)
添加换行符并保存解决了问题。
答案4
对我来说,问题是该脚本无法执行。我有crontab -e像这样设置
* * * * * /bin/my-script.sh
文件 myscript 不可执行,所以我运行
chmod +x my-script.sh
我立即开始看到预期的输出。