CRON 未正常运行 - 特别是使用顺序命令



这是一个非常奇怪的问题。想象一个相当复杂的 crontab,大约有 50 个后台作业在运行,其中大约 30 个左右每分钟运行一次,20 个每 5 分钟运行一次。

主要是 crontab 中的命令运行 wget 命令来触发运行脚本,该脚本可以完成繁重的工作。

对于后台,crontab 中的这些命令已经完美运行了好几个月 - 然后突然间一些命令在运行时出现问题 - 但静默失败。

例如,想象一下设置,但大大简化了;

* * * * * wget https://www.example.com/job-one
* * * * * wget https://www.example.com/job-two && wget https://www.example.com/job-three

我在服务器上的 cron 日志中看到的是,一切都像您期望的那样每分钟运行一次。但我并不总是相信这些,所以我在作业一、作业二和作业三后面的脚本中也设置了日志到数据库,它记录开始时间,然后在作业完成后记录结束时间。因此,您希望每分钟看到 3 条记录写入数据库。

正如我所说,自几个月前设置以来,这一直完美运行。

突然之间,这开始不运行作业三

crontab 上没有任何变化,脚本一、二或三上没有任何变化 - 更奇怪的是,当您在浏览器中手动调用 3x URL 时,它们都按预期完美运行,没有人登录到有问题的服务器并在检查登录日志时更改了任何内容 - 更奇怪的是,当您在服务器上的命令行运行以下命令时, 这一切都完美无缺;

* * * * * wget https://www.example.com/job-two && wget https://www.example.com/job-three

我已经重新启动了 cron 守护程序,我正在等待完整的系统重新启动(需要下班时间,因为这是一个实时盒子......在预生产环境中没有任何问题(。

只是发布问题,看看是否有人对其他事情有任何想法,以及为什么会发生这种情况。我从来不知道 crontab 会这样。(我责怪AWS...

我以前遇到过同样的问题,在 cron 作业"&"中将 wget 命令的过程集成到各种进程中,URL 链接必须在"中。

所以试试,

* * * * * wget "https://www.example.com/job-one"
* * * * * wget "https://www.example.com/job-two && wget https://www.example.com/job-three"