为什么我的 crontab 没有触发?

为什么我的 crontab 没有触发?

我曾经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

我立即开始看到预期的输出。

相关内容