当递归地wget
设置一个相当大的站点时,在下载 18 MB 左右后,开始抱怨“无法解析主机”和/或“名称解析暂时失败”,即使我可以使用或wget
很好地查找主机。host
dig
根据各种论坛的建议,我尝试了:
- 注释掉该
hosts
行/etc/nsswitch.conf
/etc/resolv.conf
用 Google 的8.8.8.8
和替换潜在的狡猾的名称服务器8.8.4.4
- 明确地将名称添加到
/etc/hosts
--no-dns-cache
我是否在命令行中设置似乎并不重要wget
;同样的事情也会发生。
我不知道是否wget
最终会完成,或者是否会停留在这种状态。如果它完成了就好了,因为我需要它--convert-links
。
我正在运行wget
1.11(从源代码编译,因为 1.12 及更高版本有破碎的--no-clobber
Linux Mint 14 系统上with 的行为--convert-links
(至少对于我的目的而言)。
是什么原因造成的?有办法解决吗?
答案1
不幸的是,真正的解决方案很可能是使用最新版本,wget
因为问题可能已经在那里得到解决。 1.11大约有5年历史了。有一个1.11.4如果您碰巧使用原来的 1.11,也可以。
或者(这很糟糕......并且可能无法工作,具体取决于触发文件描述符使用的内容):
- 增加文件 ulimit对于运行 wget 的用户。
- 找出一种方法让你恢复
wget
健康。 lsof
通过或简单的方式监视 fd 使用情况ls /proc/$pid/fd
wget
当它接近您的ulimit
文件时重新启动您。
否则,您将需要追踪文件描述符的泄漏wget
并对其进行修补。可能存在已知的文件描述符泄漏补丁,您可以向后移植到 1.11。不过,我似乎找不到wget
源代码的公共版本控制。