递归 wget 最终开始失败,并显示“无法解析主机”/“名称解析暂时失败”

递归 wget 最终开始失败,并显示“无法解析主机”/“名称解析暂时失败”

当递归地wget设置一个相当大的站点时,在下载 18 MB 左右后,开始抱怨“无法解析主机”和/或“名称解析暂时失败”,即使我可以使用或wget很好地查找主机。hostdig

根据各种论坛的建议,我尝试了:

  1. 注释掉该hosts/etc/nsswitch.conf
  2. /etc/resolv.conf用 Google 的8.8.8.8和替换潜在的狡猾的名称服务器8.8.4.4
  3. 明确地将名称添加到/etc/hosts

--no-dns-cache我是否在命令行中设置似乎并不重要wget;同样的事情也会发生。

我不知道是否wget最终会完成,或者是否会停留在这种状态。如果它完成了就好了,因为我需要它--convert-links

我正在运行wget1.11(从源代码编译,因为 1.12 及更高版本有破碎的--no-clobberLinux 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源代码的公共版本控制。

相关内容