crontab 停止工作,正在调用 crons 但未执行

Crontab stopped working, crons are being called but not executed

几个月前它工作正常,我不记得从那以后有什么变化。 /var/log/cron 和 Logwatch 报告都显示正在调用脚本,但实际上没有执行任何操作。

我的 crontab:

root@server [~]# crontab -l -u my-username
SHELL="/sbin/nologin"
MAILTO=""
* * * * * /usr/local/bin/php -q /home/my-username/public_html/cron.php
*/2 * * * * /usr/bin/curl -m 240 -s http://full-path
*/3 * * * * /usr/bin/curl -m 240 -s http://full-path &>/dev/null
*/4 * * * * /usr/bin/curl http://full-path
*/5 * * * * /usr/bin/curl http://full-path
0 */12 * * * /usr/local/bin/php -q /home/my-username/public_html/path/to/script.php

日志:

root@server [~]# tail -15 /var/log/cron
Jul 23 05:18:03 de CROND[18188]: (my-username) CMD (/usr/bin/curl -m 240 -s http://full-path &>/dev/null)
Jul 23 05:18:03 de CROND[18189]: (my-username) CMD (/usr/bin/curl -m 240 -s http://full-path)
Jul 23 05:18:03 de CROND[18190]: (my-username) CMD (/usr/local/bin/php -q /home/my-username/public_html/cron.php)
Jul 23 05:19:02 de CROND[18328]: (root) CMD ((sync;echo 1 >/proc/sys/vm/drop_caches;sync) >/dev/null 2>&1)
Jul 23 05:19:02 de CROND[18327]: (my-username) CMD (/usr/local/bin/php -q /home/my-username/public_html/cron.php)
Jul 23 05:20:02 de CROND[18479]: (my-username) CMD (/usr/local/bin/php -q /home/my-username/public_html/cron.php)
Jul 23 05:20:02 de CROND[18472]: (my-username) CMD (/usr/bin/curl -m 240 -s http://full-path)
Jul 23 05:20:02 de CROND[18477]: (root) CMD ((sync;echo 1 >/proc/sys/vm/drop_caches;sync) >/dev/null 2>&1)
Jul 23 05:20:02 de CROND[18474]: (root) CMD (/usr/local/maldetect/maldet --mkpubpaths >> /dev/null 2>&1)
Jul 23 05:20:02 de CROND[18473]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 23 05:20:02 de CROND[18476]: (my-username) CMD (/usr/bin/curl http://full-path)
Jul 23 05:20:02 de CROND[18478]: (my-username) CMD (/usr/bin/curl http://full-path)
Jul 23 05:20:02 de CROND[18475]: (root) CMD (/usr/local/cpanel/bin/dcpumon >/dev/null 2>&1)
Jul 23 05:20:02 de CROND[18480]: (cacti) CMD (php /home/cacti/public_html/cacti/poller.php > /dev/null 2>&1)
Jul 23 05:20:02 de CROND[18481]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok)
root@server [~]#

我还应该检查什么? 运行 CentOS 6.7 版(最终版)

Cron 只是告诉你它试图 运行 作业,而不是退出状态。

关于您还可以做些什么来帮助调试 cron:将 cron 的日志级别设置为 -L 15。您可以在 /etc/defaults/cronEXTRA_OPTS='-L 15' 中进行设置。然后重新启动 - sudo service cron restart。您的日志现在将在错误时显示如下内容:

Jul 23 11:45:01 localhost CRON[3565]: (CRON) error (grandchild #3566 failed with exit status 127)

除此之外:

  • SHELL="/sbin/nologin" 看起来很可疑。那样有用吗?尝试删除它。
  • MAILTO 设置为您的本地邮箱 MAILTO=dave(或只是将其从空字符串中取消设置)并检查您的邮件,或者只是将脚本的输出通过管道传输到日志中,也可能会有所帮助调试情况。