2016-02-02 47 views
2

我有一個文件列表總共1300萬個文件,大約140GB。 注意:需要維護目錄結構。每個文件大約爲100KB-2MB。如何使用wget更快下載1300萬個小文件?

我使用wget -x -i file_list.txt

這個工作會,但速度太慢。

注意:所有文件列表中的URL都是。

我的服務器有100M帶寬,應該得到10M/s的速度。 但wget -x -i file_list.txt只給我1M /秒。

如何解決?

+0

也許遠程服務器不給你超過1M /秒?一個巴掌拍不響。 –

回答

1

可以使用並行命令:

parallel -a websites.txt --jobs 20 'wget -x' 

與-a從文件中讀取每一行,--jobs說有多少並行運行,和wget將由下一行的後綴從文件中。

0

你可以用下面的標誌同時啓動了wget多次:

wget -x -N -i file_list.txt & 
wget -x -N -i file_list.txt & 
wget -x -N -i file_list.txt ... 

N標誌表示:

-N, --timestamping    don't re-retrieve files unless newer than 

如果仍然遇到問題,您可以用-r試試吧/ - np:multiple wget -r a site simultaneously?

+0

你可以混合傑森和我的解決方案。像「平行-a websites.txt --jobs 20'wget -x -N'」 – Johannes

0

您可以通過創建多個wget實例來提高性能。您可以使用for循環來執行此操作,但是如果遠程服務器的服務速率爲1Mbps,那麼您就會以這種速度停留。

結帳Parallel wget in Bash瞭解更多關於創建多個下載的信息。