每小时cron作业没有运行

我们有一个cron脚本,用于在我们的环境中运行Salt以及其他几个步骤,但由于某种原因,它根本就没有执行。

root@salt:~# cat /etc/cron.hourly/salt-apply.sh #!/bin/bash /bin/cat << EOF | /bin/bash 2>&1 > /var/log/salt-apply.log /bin/date cd /srv/salt /usr/bin/git pull /usr/bin/salt '*' saltutil.sync_all /usr/bin/salt '*' state.apply /bin/date EOF root@salt:~# ls -l /etc/cron.hourly/salt-apply.sh -rwxr-xr-x 1 root root 199 Feb 7 22:47 /etc/cron.hourly/salt-apply.sh 

它不运行,/var/log/salt-apply.log中没有错误,并且cron似乎正在运行小时运行部分:

 root@salt:~# grep -i cron.hourly /var/log/syslog | tail -n 5 Feb 7 22:17:01 salt CRON[6941]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Feb 7 23:17:01 salt CRON[8817]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Feb 8 00:17:01 salt CRON[10450]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Feb 8 01:17:01 salt CRON[12104]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Feb 8 02:17:01 salt CRON[13761]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) 

是的,脚本运行良好,如果你只是在shell提示符下执行它。

任何帮助将不胜感激。 谢谢!

看起来这是文件名末尾的.sh文件。 我可以发誓我已经在/etc/cron.*命名脚本在.py.sh后缀之前,所以这可能是一个错误…

任何状况之下:

 root@salt:/etc/cron.hourly# ls salt-apply.sh root@salt:/etc/cron.hourly# run-parts --report /etc/cron.hourly --list root@salt:/etc/cron.hourly# mv salt-apply.sh salt-apply root@salt:/etc/cron.hourly# run-parts --report /etc/cron.hourly --list /etc/cron.hourly/salt-apply 

这可能与此错误有关: https : //bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022

尝试命名没有.sh扩展名的脚本。