将文件添加到/etc/cron.d不会使其运行(ubuntu 10.04)


20

如果将cron文件scp到/etc/cron.d,则除非我编辑该文件并更改命令,否则它不会运行。然后,crond似乎拿起了cron文件。

如何使cron在ubuntu 10.04中重新加载其cron文件?“触摸”文件不起作用,“重新启动cron”或“重新加载cron”也不起作用。

我的cron文件设置为每分钟运行一次并记录到文件中。在我编辑命令之前,日志文件中没有任何内容,并且在/ var / log / syslog中没有任何条目

我很沮丧

这是我的cron文件,保存到/etc/cron.d/runscript中(请注意以新行结尾)

# Runs the script every minute. This is safe because it will exit with success if it's already running
* * * * * www-data if [ -f /usr/local/bin/thing ]; then exec /usr/bin/php /usr/local/bin/thing mode:prod -a 14 -d >> /var/log/thing/mything.log 2>&1; else echo `date +'[\%D \%T]'` "Thing not deployed. Command not run" >> /var/log/thing/mything.log; fi &

3
最好包括用户来运行作业。我把它排除在外了,这就是我麻烦的原因。
爱德华·安德森

1
多年后没有接受的答案?你得到它的工作?我也被困住了,常见的陷阱似乎并不是问题所在。
twigmac '16

Answers:


27

我已经遇到了这个问题,尽管它不能回答您的具体情况,但它可能会帮助其他人搜索同一问题,因为该问题的返回结果很高。

我已经在/etc/cron.d中保存了一个文件,该文件被忽略了。就我而言,这是因为我给了文件扩展名。

mytask.cron没用,但我将其重命名为mytask,效果很好。

任何带有扩展名的文件都将被忽略,因此请确保您保存的文件没有任何扩展名。


13
如今,Debian / Ubuntu上的cron(8)手册页对此进行了相当清晰的记录:“ cron守护程序本身已包含对/etc/cron.d的支持[...]此目录中的文件[...]遵循与run-parts(8)相同的命名约定:它们必须仅由大小写字母,数字,下划线和连字符组成。这意味着它们不能包含任何点。”
Josip Rodin

15

检查要复制的文件是否以结尾\n\n通常,crontabs中没有结尾的条目会遇到问题。确保这一点的最简单方法是在上次输入之后放置一个空白行。


1
我正要编辑我的问题,说它确实以\ n结尾
tom 2012年

1
自2010年发布3.0pl1-110以来,Debian / Ubuntu cron在syslog中对此进行警告,请参见。changelog条目:“在EOF之前将crontabs缺少换行符的日志记录到syslog。这仅与未通过crontab(1)安装的crontabs有关,即/etc/cron.d/*和/ etc / crontab。关闭:#76625”
Josip Rodin 2015年
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.