![递归 wget 最终开始失败,并显示“无法解析主机”/“名称解析暂时失败”](https://linux22.com/image/29198/%E9%80%92%E5%BD%92%20wget%20%E6%9C%80%E7%BB%88%E5%BC%80%E5%A7%8B%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%B9%B6%E6%98%BE%E7%A4%BA%E2%80%9C%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%E2%80%9D%2F%E2%80%9C%E5%90%8D%E7%A7%B0%E8%A7%A3%E6%9E%90%E6%9A%82%E6%97%B6%E5%A4%B1%E8%B4%A5%E2%80%9D.png)
当递归地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
源代码的公共版本控制。