Xargs 和 Wget 一小时后停止工作

Xargs 和 Wget 一小时后停止工作

在具有双核和 4GB Ram 的 Windows XP 上使用 Cygwin 运行脚本

cat url_list.txt | xargs -P50 wget -i

我正在尝试搜索4GB网址下载(约 4300 万)

第一个小时左右运行正常,然后 Bash shell 和下载停止,尽管通过 URL 列表只有 2%。

有什么想法可能是什么问题吗?

调试为什么它在一小时后停止的最佳方法是什么?

答案1

wget 可能需要一些时间来下载某些文件。在它似乎挂起的期间,内存中是否有任何 wget/xargs 进程?如果有,它是您使用 -P50 标志分配给 xargs 的全部 50 个进程,还是它不知何故超过了该数字或少于该数字,并且没有正确生成新实例?虽然它是在 cygwin 下运行的,但请查看 Windows 本身中的进程列表,因为每个 wget 下载都应在任务管理器中启动一个实例。

答案2

我假设这些 URL 是针对不同网站的。在这种情况下,您可能会访问响应速度较慢的网站,这些网站会挂起您的一个 wget。由于您有 50 个正在运行的网站,因此您必须访问其中 50 个网站,否则不会有任何反应。

要查看是否是这种情况,请尝试杀死其中一个挂起的 wget,然后查看该 wget 是否能解脱。

要跳过挂起的 URL,您可以给 wget 一个超时时间:

wget -T 60

相关内容