【发布时间】:2011-01-20 10:12:50
【问题描述】:
任何带有选项的命令/wget?
对于多线程同时递归下载站点?
【问题讨论】:
标签: multithreading wget
任何带有选项的命令/wget?
对于多线程同时递归下载站点?
【问题讨论】:
标签: multithreading wget
我找到了一个不错的解决方案。
在http://www.linuxquestions.org/questions/linux-networking-3/wget-multi-threaded-downloading-457375/阅读原文
wget -r -np -N [url] & wget -r -np -N [url] & wget -r -np -N [url] & wget -r -np -N [url] &复制尽可能多的次数,以便拥有尽可能多的进程 下载。这不像一个适当的多线程应用程序那样优雅, 但它只需少量开销即可完成工作。 这里的关键是“-N”开关。这意味着仅传输文件 如果它比磁盘上的更新。这将(主要)防止 每个进程从下载相同的文件到不同的进程 已下载,但跳过文件并下载其他文件 进程没有下载。它使用时间戳作为一种方法 这个,因此会有轻微的开销。
它对我来说非常有用,并且节省了很多时间。不要有太多 进程,因为这可能会使网站的连接饱和并打勾 主人。最多保持在 4 左右。然而,数量是 仅受两端 CPU 和网络带宽的限制。
【讨论】:
wget -m,一次运行几个
通过 xargs 开关使用并行 wget,这个解决方案看起来好多了:
【讨论】:
使用axel进行多连接下载
apt-get install axel
axel http://example.com/file.zip
【讨论】:
嗯,您总是可以运行多个wget 实例,不是吗?
例子:
wget -r http://somesite.example.org/ &
wget -r http://othersite.example.net/ &
等等。此语法适用于任何类 Unix 环境(例如 Linux 或 MacOS);不知道如何在 Windows 中执行此操作。
Wget 本身不支持多线程操作 - 至少,manpage 和 its website 都没有提到这一点。无论如何,由于 wget 支持 HTTP keepalive,瓶颈通常是连接的带宽,而不是同时下载的数量。
【讨论】:
wget 是单一的螺纹。对不起。