WGET是否超时?

我使用Wget通过cron运行PHP脚本,使用以下命令:

wget -O - -q -t 1 http://www.example.com/cron/run 

脚本最多需要5-6分钟才能完成处理。 请问WGet是否等待它,并把它所需要的时间,或将它超时?

根据wget的手册页 ,有两个与超时有关的选项 – 缺省的超时时间为900s – 所以我说,是的,它可能会超时。

以下是有问题的选项:

 -T seconds --timeout=seconds 

将networking超时设置为秒。 这相当于同时指定--dns-timeout ,– --connect-timeout--connect-timeout

对于这三个选项:

 --dns-timeout=seconds 

将DNS查找超时设置为秒。
在指定时间内未完成的DNS查找将失败。
默认情况下,DNS查找没有超时,除了由系统库实现的。

 --connect-timeout=seconds 

将连接超时设置为秒秒。
需要较长时间build立的TCP连接将被中止。
默认情况下,没有连接超时,除了由系统库实现的连接超时。

 --read-timeout=seconds 

将读取(和写入)超时设置为秒。
这个超时的“时间”是指空闲时间:如果在下载的任何时间点没有收到超过指定秒数的数据,读取失败,下载重新开始。
该选项不会直接影响整个下载的持续时间。

我想使用类似的东西

 wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run 

应该确保没有超时的时间超过你的脚本的持续时间。

(是的,这可能是最残忍的解决scheme^^)

默认的超时时间是900秒。 您可以指定不同的超时。

 -T seconds --timeout=seconds 

默认是重试20次。 您可以指定不同的尝试。

 -t number --tries=number 

链接: wget文件

因为在你的问题中你说这是一个PHP脚本,也许最好的解决办法可能是简单地添加你的脚本:

 ignore_user_abort(TRUE); 

这样,即使wget终止,PHP脚本也会继续处理,直到它不超过max_execution_time限制(ini指令:默认30秒)。

根据wget任何你不应该改变它的超时, 根据UNIX手册 的默认wget超时是900秒(15分钟) ,威士比你所需要的5-6分钟大得多。

在版本1.14之前,如果由于错误导致通过https下载,wget超时参数不被遵守。