有时 wget 只是在下载过程中挂起:
50% [===================> ] 500,000 500KB/s eta 5m 5s
我最终只是做了一个wget --continue
重新启动它的操作,它似乎工作了一段时间,直到它再次挂起。
想知道(a)是否有办法让它在这种情况下抛出错误,或者(b)自动重新启动(也许使用一些外部包装脚本)。
此外,如果您碰巧知道这种情况可能发生或正在发生的事情的一般原因,那么了解这一点会很有趣,但不是必需的。主要只是想知道如何让它重新启动(或者至少抛出一个错误)。
顺便说一句,“挂起”我的意思是它只是坐在那里,终端没有任何变化,等等。但它似乎并没有导致内存泄漏或导致我的计算机的 CPU 被超越,所以它嗡嗡作响并且没有剩余的 CPU。相反,它只是坐在那里,我必须重新启动它。
我也尝试过这个,但它没有做任何事情:
wget --continue --tries=0 --read-timeout=10 http://domain.com/foo/bar.zip
另外,我仍然可以在不同终端窗口中的不相关域上同时运行多个其他 wget,所以也许是该域永远不会响应或其他什么。不知道该怎么办。
答案1
'--超时=秒'
将网络超时设置为秒秒。这相当于同时指定“--dns-timeout”、“--connect-timeout”和“--read-timeout”。
https://www.gnu.org/software/wget/manual/wget.html#Basic-Startup-Options
http://man7.org/linux/man-pages/man1/timeout.1.html
while true;do wget -T 15 -c "$URL" && break;done