【发布时间】:2014-11-28 03:38:49
【问题描述】:
我有一台服务器可以正确触发 cron 作业。这是该服务器上的信息:
Ubuntu 12.04.5 LTS(GNU/Linux 3.13.0-32-generic x86_64)
crontab -l
* * * * * ( sleep 15 ; sudo /var/crons/NextQueueItemParallel.sh )
* * * * * ( sleep 45 ; sudo /var/crons/NextQueueItemParallel.sh )
没有触发 crons 的服务器:
Ubuntu 12.04.4 LTS (GNU/Linux 3.16.5-x86_64-linode46 x86_64)
crontab -l
* * * * * ( sleep 30 ; sudo /var/crons/ParseLogs.sh )
我手动运行脚本,它可以工作。我验证了路径是正确的,并把这段调试代码看它是否被调用:
echo 1 >> /var/crons/test
php /var/www/crons/ParseLogFiles.php
我手动运行它,并在测试末尾附加了一个 1,但它本身并没有出现。我已经安装了正确的 cron 和 anacron 服务,并尝试了这里列出的解决方案:
php cron job not running | http://growingventuresolutions.com/blog/ubuntu-cron-isn-t-running-some-things-check.html | Cron Job Doesn't Run
编辑 1:
我通过发出sudo crontab -e 更新了当前无法运行的机器上的 crontab,并且现在存在以下行(我通过关闭和重新打开验证):
* * * * * ( sleep 30 ; /var/crons/ParseLogs.sh )(后跟一两行)
该文件由以下内容组成:
echo 1 >> /var/crons/test
php /var/www/crons/ParseLogFiles.php
我尾随 /var/crons/test (tail -f /var/crons/test) 但没有看到任何附加内容并且脚本没有运行。当我手动运行这两个(通过复制该行)时,它实际上会运行。
编辑 2:
我没有执行权限,这就是为什么当我手动运行它而不是在 cron 上运行它的原因。我发出了以下命令chmod +x /var/crons/ParseLogs.sh,它立即开始工作。如果您正在查看此内容并且其他所有内容似乎都在工作,请检查一下!感谢所有帮助过的人!
【问题讨论】:
-
这并不是真正的编程问题。 Unix & Linux 可能是一个更好的提问地方。查看他们的帮助中心。
标签: php linux bash ubuntu cron