多个wget -r一个网站同时?

时间:2011-01-20 10:12:50

标签: multithreading wget

任何带选项的命令/ wget?

对于多线程下载网站递归并同时?

4 个答案:

答案 0 :(得分:10)

我找到了一个不错的解决方案。

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和网络带宽。

答案 1 :(得分:5)

使用xargs开关使用并行wget,这个解决方案看起来好多了:

https://stackoverflow.com/a/11850469/1647809

答案 2 :(得分:3)

使用axel下载多连接

apt-get install axel

axel http://example.com/file.zip

答案 3 :(得分:2)

那么,你总是可以运行wget的多个实例,不是吗?

示例:

wget -r http://somesite.example.org/ &
wget -r http://othersite.example.net/ &

等。此语法适用于任何类Unix环境(例如Linux或MacOS);不确定如何在Windows中执行此操作。

Wget本身不支持多线程操作 - 至少,manpageits website都没有提到这一点。无论如何,由于wget支持HTTP keepalive,因此瓶颈通常是连接的带宽,而不是同时下载的数量。