我正在使用Wget通过cron通过以下命令运行PHP脚本:
wget -O - -q -t 1 http://www.example.com/cron/run
该脚本最多需要5-6分钟来进行处理。WGet是否会等待它并一直提供它所需的时间,还是会超时?
Answers:
根据wget的手册页,有两个与超时有关的选项-默认读取超时为900s-所以我说是的,它可能会超时。
这是有问题的选项:
-T seconds
--timeout=seconds
将网络超时设置为秒秒。这等效于同时指定
--dns-timeout
,,--connect-timeout
和--read-timeout
。
对于这三个选项:
--dns-timeout=seconds
将DNS查找超时设置为秒秒。
在指定时间内未完成的DNS查找将失败。
默认情况下,除了由系统库实现的查询外,DNS查询没有超时。
--connect-timeout=seconds
将连接超时设置为秒秒。
建立时间较长的TCP连接将被中止。
默认情况下,除了系统库实现的连接超时之外,没有连接超时。
--read-timeout=seconds
将读取(和写入)超时设置为秒秒。
此超时的“时间”是指空闲时间:如果在下载的任何时间点,如果接收到的数据超过指定的秒数,则读取失败,然后重新开始下载。
此选项不会直接影响整个下载的持续时间。
我想使用类似
wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
应该确保没有超时时间超过脚本的持续时间。
(是的,这可能是最残酷的解决方案^^)
-t
选项似乎是的别名--tries
,该别名将重试次数设置为number。;;; 它似乎与任何超时都不相关,但是与出现错误时wget将重试下载的次数有关,并且您可能不希望将超时视为错误,并且脚本被重新调用。
--timeout
。可能是因为我在命令中使用了基本身份验证
默认超时为900秒。您可以指定其他超时。
-T seconds
--timeout=seconds
默认值为重试20次。您可以指定不同的尝试。
-t number
--tries=number
链接:wget man文档