12

如何设置 cron 作业命令来执行 URL?

/usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php >/dev/null 2>&1

为什么我不能完成这项工作!?已经尝试了一切.. PHP 脚本应该发送一封电子邮件并创建一些文件,但没有完成

该命令返回:

Output from command /usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php ..

No output generated

/root...但它仍然在每次执行时创建一个空文件!?为什么?

4

4 回答 4

20

像这样使用卷曲:

/usr/bin/curl http://domain.com/page.php

不要担心输出,它会被忽略

于 2011-11-09T10:36:53.573 回答
9

我有同样的问题。解决方案是了解 wget 正在输出两件事:url 请求的结果和关于它在做什么的活动消息。

默认情况下,如果您不指定输出文件,它将在运行 wget 的当前文件夹中创建一个,看似以您的 url 中的文件命名。

如果要指定不同的输出文件:

-O outputfile.txt 

将 url 结果输出到 outputfile.txt,覆盖那里的内容。

如果您希望附加到该文件,请写入标准输出,然后从那里附加到文件:这是诀窍:写入标准输出使用:

-O-

第二个破折号代替文件名,并告诉 wget 将 url 结果写入标准输出。

然后使用附加语法 >> 附加到您选择的文件:

wget -O- http://www.invisibility.com >>/var/log/invisibility.log

小写 o,指定活动日志的位置,因此如果您希望记录 url 请求的活动,您可以:

wget -o http://someurl.com /var/log/activity.log

-q 禁止输出活动消息

wget -q http://someurl.com /var/log/activity.log

不会将任何活动记录到指定文件中,我认为这是人们感到困惑的症结所在。

请记住:-O 是 --output-document 的简写 -o 是 --output-file 的简写,即活动日志。

于 2012-10-16T01:18:37.707 回答
7

我花了几个小时才让它工作。感谢人们写下解决方案。还需要确保检查是否需要单引号或双引号,否则会解析 url 错误导致错误消息:

这有效(使用单引号):

/usr/bin/wget -O -q 'http://domain.com/cron-file.php'

这给出了错误(使用双引号):

/usr/bin/wget -O -q "http://domain.com/cron-file.php"

不知道是否需要 /usr/bin/。阅读有关如何执行 -O -q 顺序的不同方法。很难在网络上找到该主题的可靠权威来源。这么多不同的例子。

可以在此处找到在线 wget 手册,了解可用选项(但请查看正在使用的 Linux 发行版以获取最新版本): http ://unixhelp.ed.ac.uk/CGI/man-cgi?wget

于 2014-08-12T16:57:15.943 回答
1

使用 wget 显示 HTML:

wget -qO- http://www.example.com
于 2013-02-14T06:29:45.203 回答