如何设置wget cron job命令

cla*_*rkk 10 php linux webmin

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

/usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

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

该命令返回:

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

No output generated
Run Code Online (Sandbox Code Playgroud)

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

Iva*_*van 19

像这样使用curl:

/usr/bin/curl http://domain.com/page.php
Run Code Online (Sandbox Code Playgroud)

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


Zac*_*den 8

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

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

如果要指定其他输出文件:

-O outputfile.txt 
Run Code Online (Sandbox Code Playgroud)

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

如果你想附加到那个文件,写入std out然后从那里追加到文件:这里的诀窍是:写入std out use:

-O-
Run Code Online (Sandbox Code Playgroud)

第二个短划线代替文件名并告诉wget将url结果写入std out.

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

wget -O- http://www.invisibility.com >>/var/log/invisibility.log
Run Code Online (Sandbox Code Playgroud)

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

wget -o http://someurl.com /var/log/activity.log
Run Code Online (Sandbox Code Playgroud)

-q禁止输出活动消息

wget -q http://someurl.com /var/log/activity.log
Run Code Online (Sandbox Code Playgroud)

不会将任何活动记录到指定的文件,我认为这是人们感到困惑的关键.

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


小智 7

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

这有效(使用单引号):

/usr/bin/wget -O -q 'http://domain.com/cron-file.php'
Run Code Online (Sandbox Code Playgroud)

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

/usr/bin/wget -O -q "http://domain.com/cron-file.php"
Run Code Online (Sandbox Code Playgroud)

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

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