【问题标题】:Cron not running on 12.0.4 but does on 12.0.5Cron 不在 12.0.4 上运行,但在 12.0.5 上运行
【发布时间】: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


【解决方案1】:

我的猜测是其中一台服务器启用了sudorequiretty 配置选项。

假设 Ubuntu 使用与上游 Debian 相同的设置,请检查 /etc/sudoers/etc/sudoers.d/ 目录中的文件以获取类似内容:

Defaults    requiretty

如果找到了,请删除它。

如果您控制服务器,另一种选择可能是将 cron 任务移动到 root 用户的 crontab 或 /etc/cron.d 目录(此目录中的文件格式指定要运行的用户)

【讨论】:

  • cat /etc/sudoers | grep requiretty 不返回任何行。我确实可以控制服务器,但我显然不是专门的系统管理员。据我了解,cron 是以添加它的用户身份运行的,所以我认为这将是 root 用户 crontab。我如何具体知道这是作为哪个 cron 选项卡运行的?
  • 如果你使用crontab -e,它会编辑当前用户的crontab,是的。如果您以 root 身份执行此操作,则在调用脚本时无需使用 sudo。
  • 抱歉,这么久才回复!我正在用更多细节更新帖子。到目前为止,非常感谢您回答我!
【解决方案2】:

我必须chmod +x /var/crons/ParseLogs.sh 才能让 crontab 能够执行它。手动运行它显然绕过了这个限制,因为我的云提供商将默认帐户创建为 root。

【讨论】:

    猜你喜欢
    • 2021-03-19
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多