linux命令行下載管理器wget

wget是Linux/Unix命令行文件下載器,它是下載網站上文件的免費的非交互下載工具,它支持HTTP、HTTPS和FTP協議,也支持通過HTTP代理檢索。Wget是非交互的,這就是說它可以在用戶沒有登錄到系統時在後台工作。

實例1 :下載單個文件。以下命令會下載CentOS 7 ISO文件到用戶當前工作目錄中。

# wget http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

實例2:續傳分段下載文件。總有那麼一些場景,當我們開始下載一個大文件時,中途互聯網卻斷開了。那樣的話,我們可以使用wget命令的『-c』選項,讓下載從斷點續傳。

    # wget -c http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

實例3:後台下載文件。我們可以通過在wget命令中使用『-b』選項來讓它在後台下載文件。

    linuxtechi@localhost:~$ wget -b http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/
    CentOS-7.0-1406-x86_64-DVD.iso
    Continuing in background, pid 4505.
    Output will be written to 『wget-log』.

正如我們上面所見,下載進程被捕獲到用戶當前目錄中的『wget-log』文件中。

    linuxtechi@localhost:~$ tail -f wget-log
    2300K .......... .......... .......... .......... .......... 0% 48.1K 18h5m
    2350K .......... .......... .......... .......... .......... 0% 53.7K 18h9m
    2400K .......... .......... .......... .......... .......... 0% 52.1K 18h13m
    2450K .......... .......... .......... .......... .......... 0% 58.3K 18h14m
    2500K .......... .......... .......... .......... .......... 0% 63.6K 18h14m
    2550K .......... .......... .......... .......... .......... 0% 63.4K 18h13m
    2600K .......... .......... .......... .......... .......... 0% 72.8K 18h10m
    2650K .......... .......... .......... .......... .......... 0% 59.8K 18h11m
    2700K .......... .......... .......... .......... .......... 0% 52.8K 18h14m
    2750K .......... .......... .......... .......... .......... 0% 58.4K 18h15m
    2800K .......... .......... .......... .......... .......... 0% 58.2K 18h16m
    2850K .......... .......... .......... .......... .......... 0% 52.2K 18h20m

實例4:限制下載速率。默認情況下,wget命令嘗試以全速下載,但是有時候你可能使用的是共享互聯網,那麼如果你嘗試使用wget來下載龐大的文件時,就會把其它用戶的網路拖慢。這時,你如果使用『-limit-rate』選項來限制下載速率,就可以避免這種情況的發生。在下面例中,下載速率被限制到了100k。

    #wget --limit-rate=100k http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

實例5:使用『-i』選項來下載多個文件。如果你想要使用wget命令來下載多個文件,那麼首先要創建一個文本文件,並將所有的URL添加到該文件中。

    # cat download-list.txt
    url1
    url2
    url3
    url4

現在,發出以下命令吧:

    # wget -i download-list.txt

實例6:增加重試次數。

我們可以使用『-tries』選項來增加重試次數。默認情況下,wget命令會重試20次,直到下載成功。該選項在你下載一個大文件的過程中互聯網連接發生問題時十分有用,因為在那種情況下,會增加下載失敗的幾率。

    # wget --tries=75 http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

實例7:使用-o選項來重定向wget日誌到文件。我們可以使用『-o』選項來重定向wget命令的日誌到一個日誌文件。下面的命令會在用戶當前目錄下創建download.log文件。

    #wget -o download.log http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

實例8:下載整個網站用於本地查看。

    # wget --mirror -p --convert-links -P ./<Local-Folder> website-url
–mirror : 開啟適用於鏡像的選項。
-p : 下載所有能正確顯示指定HTML網頁的全部必要文件。
–convert-links : 下載完成後,轉換文檔中的鏈接以用於本地查看。
-P ./Local-Folder : 保存所有文件和目錄到指定的目錄。

實例9:下載過程中拒絕文件類型。當你正打算下載整個網站時,我們可以使用『-reject』選項來強制wget不下載圖片。

    # wget --reject=png Website-To-Be-Downloaded

實例10:使用wget -Q設置下載配額。我們可以使用『-Q』選項強制wget命令在下載大小超過特定大小時退出下載。

    # wget -Q10m -i download-list.txt

注意,配額不會對單個文件的下載產生影響。所以,如果你指定wget -Q10m ftp://wuarchive.wustl.edu/ls-lR.gz,ls-lR.gz 的全部內容都會被下載。這在下載命令行指定的多個URL時也一樣。然而,在遞歸或從一個輸入文件檢索時,還是值得一用。因此,你可以安全地輸入『wget -Q10m -i download-list.txt』,在超過配額時,下載會退出。

實例11:從密碼保護的網站下載文件。

    # wget --ftp-user=<user-name> --ftp-password=<password> Download-URL

另外一種指定用戶名和密碼的方式是在URL中。任一方法都將你的密碼揭露給了那些運行「ps」命令的人。要防止密碼被查看到,將它們存儲到.wgetrc或.netrc中,並使用「chmod」設置合適的許可權來保護這些文件不讓其他用戶查看到。如果密碼真的很重要,不要在它們還在文件里躺著的時候走開,在Wget開始下載後,編輯該文件,或者刪除它們。

作者: 張津東

群而不黨,和而不同,自由理性皆容納。

發表回復