我如何找出cron为什么不执行我的工作?


15

我正在使用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添加可以正常工作的cron作业* * * * * date >> /tmp/somefile,但是它在中安装了新的crontab /var/spool/cron/crontabs/root,而我希望cron在中使用文件/etc/crontab

是否可以使用任何调试选项,或者在某处可能会显示错误消息的日志中进行调查?


1
对crontab -l显示了什么?
user345352353 2014年

no crontab for root
jl6 2014年

我相信,如果您仅在此SE网站上进行一些搜索,就会找到答案。这是一个相当普遍的问题。
mdpc

使用crontab命令(-lswitch)检索的Cron 是用户相关的,而/etc/crontab用于存储系统范围的Cron。因此,保存在其中的任务/etc/crontab不会出现在任何人的中crontab -l
约翰·史密斯

请注意,“ 服务器故障”有一个有关cronjob调试的规范问题,可能会有所帮助。
通配符

Answers:


4

为了进一步帮助您调试cron作业出了什么问题,您应该检查邮件。通常将其存储在类似/var/mail/<user_name>或的文件中/var/spool/mail/<user_name>

这两个文件实际上是我的Debian机器上的硬链接,但是我不知道这是否是标准的。

说明

cron(8)页面:

执行命令时,任何输出都将邮寄给crontab的所有者(或crontab的MAILTO环境变量中命名的用户,如果存在的话)。


我已经检查过邮件;没有生成任何文件,也没有dead.letter文件。
2014年

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作业即可。


但是在中有一个crontab文件/etc/crontab。也许问题是为什么不crontab -l承认呢?
2014年

0

我通过更改以下权限/etc/crontab来解决此问题:

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

以前是-rw-rw-r--。那是唯一的变化。它没有用,现在是。仍然不确定为什么。


1
根crontab将以根身份执行任何命令。允许对非root用户进行写访问的权限将被视为安全漏洞。
ChuckCottrill

@ChuckCottrill:但是组写位只具有对根组中的那些的写访问权限-大概只是根用户?
jl6 2014年

0

我也遇到了类似的问题,但是在将root指定为user之后/etc/crontab,cron作业开始触发。

可能是由于所遵循的语法与上的语法crontab -e不同/etc/crontab

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.