Cron 作业有时因 curl 错误而失败

Cron job sometimes fails with error by curl

我在 (Ubuntu 14 Trusty) 做了一个 cron 作业,就像这样:

sudo crontab-e

then

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    * * * * * curl --silent http://www....cron_script.php >  /dev/null

但有时,我会向 crown job 发送此错误消息:

/etc/cron.hourly/curl:
/etc/cron.hourly/curl: line 5: bin: command not found
run-parts: /etc/cron.hourly/curl exited with return code 127

谁能告诉我为什么?如您所见,它每分钟运行一次,但我每小时收到一次该错误消息。主要是每小时 XX:54 分钟。

提前致谢!

我认为它无法从 crontab 中找到命令 curl 而 运行,因此您需要执行 which curl 它会在您的框中为您提供它的位置。然后尝试将该 curl 命令 eg--> /usr/bin/curl 的确切路径提供给 cron 条目,如果这对您有帮助,请告诉我。此外,您的路径详细信息应该添加到用户的 DOT/BASH 配置文件中,您是 运行 crontab,然后它也可以在不提供 curl 命令的完整路径的情况下工作。

您的 crontab 应该包含以下行:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

由于您已将路径放入 crontab 每小时脚本中,它每小时执行一次,这会使您出现错误

创建一个脚本并将两行都放在那里

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
curl --silent http://www....cron_script.php

然后在 crontab 中 运行 脚本

* * * * * my_script.sh >  /dev/null 2>&1

Crontab 应该只包含遵循以下格式的行:

m h dom mon dow command