2011-01-20 74 views

回答

2

嗯,你總是可以運行的wget多個實例,不是嗎?

實施例:

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

等等此語法將在任何類Unix環境中(例如Linux或MacOS的)工作;不知道如何在Windows中做到這一點。

Wget本身不支持多線程操作 - 至少,manpageits website都沒有提到這一點。無論如何,因爲wget支持HTTP keepalive,所以瓶頸通常是連接的帶寬,而不是同時下載的數量。

+0

`wget的-r --child 100 http:// site.com「尋找這樣的東西。 – c2h2 2011-01-20 10:17:40

+0

@ c2h2:根據其網站上的wget手冊頁(http://linux.die.net/man/1/wget)和wget文檔(http://www.gnu.org/software/wget/manual/wget .html),沒有這樣的選項(或類似的東西) - `wget`是單線程的。抱歉。 – Piskvor 2011-01-20 12:53:33

+0

謝謝!我也是這麼想。 – c2h2 2011-01-20 15:29:56

8

我找到了一個體面的解決辦法。如您認爲擬合有儘可能多的過程 下載

讀取原來在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和兩端的網絡帶寬。

+0

哇,它應該工作,我會試一試 – c2h2 2011-08-22 03:54:37

3

使用axel下載與多連接

apt-get install axel 

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