如何设置cron job命令来执行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
中创建一个空文件!?为什么呢?
答案 0 :(得分:18)
像这样使用curl:
/usr/bin/curl http://domain.com/page.php
不要担心输出,它会被忽略
答案 1 :(得分:8)
我遇到了同样的问题。解决方案是理解wget输出两件事:url请求的结果和有关它正在做什么的活动消息。
默认情况下,如果您没有指定输出文件,它将在运行wget的当前文件夹中创建一个,似乎以您的网址中的文件命名。
如果要指定其他输出文件:
-O outputfile.txt
会将url结果输出到outputfile.txt,覆盖那里的内容。
如果您希望附加到该文件,请写入std out然后从那里追加到该文件: 这就是诀窍:写出std out use:
-O-
第二个破折号代替文件名并告诉wget将url结果写入std out。
然后使用附加语法>>,附加到您选择的文件中:
wget -O- http://www.invisibility.com >>/var/log/invisibility.log
小写o指定活动日志的位置,因此如果您希望记录网址请求的活动,您可以:
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的简写,这是活动日志。
答案 2 :(得分:3)
花了我几个小时让它工作。感谢您写下解决方案的人。 还需要确保检查是否需要单引号或双引号,否则它将解析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
答案 3 :(得分:1)
使用wget显示HTML:
wget -qO- http://www.example.com