我使用的是 Ubuntu 14.04,并且 cron 守护进程正在运行:
# ps ax | grep cron
822 ? Ss 0:00 cron
但它没有执行任何作业。我之前收到过/var/log/syslog
这样的条目:
2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
但现在没有与 cron 相关的条目。我也收到这样的条目/var/log/auth.log
:
2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root
但同样,现在没有与 cron 相关的条目。
我不知道有什么改变。我尝试过重新启动 cron:
# service cron restart
cron stop/waiting
cron start/running, process 24907
我尝试使用crontab -e
添加一个* * * * * date >> /tmp/somefile
有效的 cron 作业,但它在 中安装了一个新的 crontab /var/spool/cron/crontabs/root
,而我希望 cron 使用 中的文件/etc/crontab
。
是否有任何我可以使用的调试选项,或者某个地方的日志可能会给出我可以调查的错误消息?
答案1
为了进一步帮助您调试工作中的问题cron
,您应该检查您的邮件。这通常存储在类似/var/mail/<user_name>
或 的文件中/var/spool/mail/<user_name>
。
这两个文件实际上是我的 Debian 机器上的硬链接,但我不知道这是否是标准的。
解释
从cron(8)
页面:
执行命令时,任何输出都会邮寄给 crontab 的所有者(或者发送给 crontab 中 MAILTO 环境变量中指定的用户,如果存在的话)。
答案2
您已经表明 root 没有 crontab,是否有任何用户有 crontab 条目?如果您仅使用root,那么您还可以检查以下目录: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly
在我的机器(centos 6.4)上,我的 /etc/cron.daily/ 目录中有 mlocate.cron ,并且 cron 每天运行该脚本。
所以我认为你只需要添加 cron 作业。
答案3
我通过将权限更改/etc/crontab
为以下内容解决了这个问题:
-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab
以前是-rw-rw-r--
。这是唯一的改变。以前没用,现在可以了。仍然不知道为什么。
答案4
我也遇到了类似的问题,但是在将 root 指定为 上的用户后/etc/crontab
,cron 作业开始触发。
这可能是由于 所crontab -e
遵循的语法与/etc/crontab
.