我如何找出为什么 cron 没有运行我的工作?

jl6*_*jl6 15 cron ubuntu

我使用的是 Ubuntu 14.04,并且 cron 守护进程正在运行:

# ps ax | grep cron
822 ?        Ss     0:00 cron
Run Code Online (Sandbox Code Playgroud)

但它没有执行任何作业。我以前收到过/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 ))
Run Code Online (Sandbox Code Playgroud)

但现在没有与 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
Run Code Online (Sandbox Code Playgroud)

但同样,现在没有与 cron 相关的条目。

我不知道有什么改变了。我试过重新启动 cron:

# service cron restart
cron stop/waiting
cron start/running, process 24907
Run Code Online (Sandbox Code Playgroud)

我尝试使用crontab -e添加一个有效的 cron 作业* * * * * date >> /tmp/somefile,但它/var/spool/cron/crontabs/root/etc/crontab.

是否有任何我可以使用的调试选项,或者某个地方的日志可能会提供我可以调查的错误消息?

小智 0

您已经表明 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 作业。