如何在 cron 作业中使用 curl?

dav*_*and 19 cron curl

我需要在 cpanel 中设置一个 cron 作业,每周调用一次 URL(在同一台服务器上)。我打算使用wget但事实证明这在正在使用的共享服务器上被禁用。

wget有替代品吗?我听说可以使用curl,但我不知道如何在 cron 命令中进行设置。

另外,让 cronjob 在完成时什么都不做的命令是什么?

任何想法都非常感谢!

ant*_*set 26

curl 的工作方式是这样的,而不是使用 wget:

curl --silent http://domain.com/cron.php
Run Code Online (Sandbox Code Playgroud)

它将以与 wget 相同的方式工作。如果它是您正在启动的 php 文件,是否有任何原因无法通过命令行 php 解释器运行它,如下所示:

php -q /path/to/cron.php
Run Code Online (Sandbox Code Playgroud)

与网络服务器请求相同,通常会更快地工作,并且在通过网络服务器/curl 调用时不会出现某些超时限制


use*_*517 11

如果 curl 可用,您可以尝试类似

1 1 * * 0  /usr/bin/curl --silent http://example.come/some.php &>/dev/null
Run Code Online (Sandbox Code Playgroud)

这应该会导致 curl 完全静音,因此您在完成时不会收到任何电子邮件。

  • 我也建议使用 --show-error 选项,因此它在正常操作时是静默的,但如果发生会产生错误。 (4认同)

小智 8

除了 --silent 之外,我建议添加“-m”参数,因为此参数设置允许传输的最长时间。想象一下,您每分钟调用一次 cron,脚本需要 2 分钟 - 这可能会对服务器负载或其他事情产生不良影响。

1 1 * * 0  /usr/bin/curl -m 120 -s http://example.come/some.php &>/dev/null
Run Code Online (Sandbox Code Playgroud)