如何确定/etc/crontab没有运行cron命令的问题? 我有发送电子邮件的脚本,我可以通过命令行手动运行他们,他们工作很好,但从来没有得到处理的cron ….
我能做些什么来debugging为什么cron不运行?
我有一种感觉,这是问题的一部分…
$ sudo /etc/init.d/crond start sudo: /etc/init.d/crond: command not found
你有几个select,而不是以任何特定的顺序。
在命令行上运行crontab中的命令。 这可能是有欺骗性的,因为这通常会适用于你,它不在cron中运行的原因是缺less一个环境variables,或者沿着这些线。
添加一个输出选项到你的crontab行,例如:
5 */2 * * * /usr/local/bin/do-stuff.sh >> /tmp/results.log;
确保cron实际上正在运行。
检查您的cron日志文件是否有任何特定的错误。
除了@muffinista和@ brent的答案之外,还有更多深奥的问题可以在Ubuntu上运行
cron通过/ bin / sh(默认情况下)发送crontab条目,所以看起来很简单,但是会失败,但是当你粘贴到你的/ bin / bashterminal
0 * * * * echo hi >& /dev/null
所以改变SHELL或你的redirect语法!
我的Ubuntu版本忽略了/ etc / defaults / cron中的设置,所以为了提高日志级别,您可能需要手动运行cron守护进程(cron -f -L 2)。
在最近的一些情况下,这是由于人们在/etc/crontab编辑东西而不发送crond signal 1(SIGHUP)让它知道它应该重读/etc/crontab文件。
尝试
kill -1 $PID-OF-CROND
看看是否有帮助 确定crond的pid是作为练习留给你的;-) – 尤其是因为如果你找不到它,这可能意味着crond没有运行,那么你会发现你的问题!
如果你使用的是shell脚本,人们往往会忘记他们在脚本中使用的命令可能不在cron的PATH中(例如/opt某些东西)。 根据需要在脚本的开头正确设置PATH。 对于sh / bash,这将是:
PATH=$PATH:/opt/something-1.0/bin
例如