我會向你展示10個 Wget 命令的實際案例. Wget 是一個用於下載文件的免費工具,它支持大多數常用的Internet協議,包括 HTTP, HTTPS, 以及 FTP.
Wget這個名字來源於 World Wide Web + get. Wget 有很多功能,可以很方便地做到下載大型文件,遞歸下載,一次下載多個文件以及鏡像web網站和FTP站點.
Wget是非交互式的,但是使用起來相當的靈活. 你可以在腳本,cron任務,終端等地方調用它.
它可以在用戶未登陸的情況下運行在後臺. 也就是說你可以開始下載文件,然後退出系統,wget會在後臺運行直到完成任務.
在本文中,我將演示一些wget的使用例子, 這些例子都很常見,比如下載文件,比如鏡像整個網站.
在演示前,我們先在 [[https://www.rosehosting.com/ubuntu-vps.html][Ubuntu 16.04]] [[https://www.rosehosting.com/ubuntu-vps.html][VPS]] 上安裝wget.
請注意,雖然該演示是在 Ubuntu 16.04 上進行的, 但是這些命令在其他 [[https://www.rosehosting.com/linux-vps-hosting.html][Linux]] 發行版中同樣適用.
登陸服務器並安裝wget
第一步是 [[https://www.rosehosting.com/blog/connect-to-your-linux-vps-via-ssh/][通過SSH登陸服務器]].
apt-get update
apt-get upgrade
然後安裝wget軟件包:
apt-get install wget
安裝完成後,就可以開始使用wget命令了.
1. 下載單個文件
wget最常用也是最簡單的用法就是用來下載單個文件.
你可以用下面命令想下載最新版的WordPress
wget https://wordpress.org/latest.zip
你會看到如下輸出
--2017-10-14 03:46:06-- https://wordpress.org/latest.zip
Resolving wordpress.org (wordpress.org)... 66.155.40.250, 66.155.40.249
Connecting to wordpress.org (wordpress.org)|66.155.40.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8912693 (8.5M) [application/zip]
Saving to: 'latest.zip'
latest.zip 100%[=====================================================================================================>] 8.50M 5.03MB/s in 1.7s
2017-10-14 03:46:07 (5.03 MB/s) - 'latest.zip' saved [8912693/8912693]
從中可以看出,wget還會顯示出下載的進度, 當前下載速度, 文件大小, 當前日期時間 以及待下載文件的名稱.
在我們的例子中, wget會下載文件並以”latest.zip”爲名存放到當前目錄中.zip” name.
2. 下載文件並重命名
若你想以其他名稱保存下載的文件,可以使用 =-O= 選項:
wget -O wordpress.zip https://wordpress.org/latest.zip
wget會下載文件並以”wordpress.zip”爲名存放到當前目錄中.zip” name.
3. 指定下載目錄
使用 =-p= 選項指定下載目錄:
wget -P /opt/wordpress https://wordpress.org/latest.zip
就會把文件下載到 /opt/wordpress 目錄中.
4. 限制下載速度
當你下載大型文件時,可能耗時很長,這事你可以限制wget的下載速度以防止它把整個帶寬都佔滿了.
下面命令就將下載速度限制在了每秒300k:
wget --limit-rate=300k https://wordpress.org/latest.zip
5. 斷點續傳
在下載大型文件時,可能會由於網絡連接抖動造成下載中斷.
爲了避免重新下載,可以使用 =-c= 選項進行斷點續傳:
wget -c https://wordpress.org/latest.zip
若下載中斷後你沒有用 =-c= 進行斷點續傳,而是重新下載, wget 會在文件名後加上 “.1” 防止與前面下載的文件重名.
6. 後臺下載
當下載大型文件時, 可以使用 =-b= 選項讓wget在後臺下載文件.
wget -b http://example.com/big-file.zip
輸出內容會寫入同目錄下的 “wget-log” 文件, 這樣你就可以用下面命令來檢查下載狀態了:
tail -f wget-log
7. 設置重試次數
若網絡有問題導致下載時常中斷,就可以使用 =-tries= 選項增加重試次數:
wget -tries=100 https://example.com/file.zip
8. 下載多文件
若你想同時下載多個文件,你可以將要在的文件URL存放在一個文本文件中(假設該文件名爲download.txt).
下面命令創建一個文本文件:
touch download.txt
然後可以用 nano 編輯該文件,輸入所有想下載的文件URL:
nano download.txt
http://example.com/file1.zip
http://example.com/file2.zip
http://example.com/file3.zip
保存該文件, 然後使用 =-i= 選項下載文本文件中保存的所有文件:
wget -i download.txt
9. 下載FTP文件
wget還支持下載FTP文件,可以爲它設置用戶名和密碼,如下所示:
wget --ftp-user=username --ftp-password=password ftp://url-to-ftp-file
10. 下載整個網站
你甚至可以用wget下載完整的站點, 然後進行離線瀏覽. 方法是使用如下命令:
wget --mirror --convert-links --page-requisites --no-parent -P /path/to/download https://example-domain.com
—mirror 會開啓鏡像所需要的所有選項.
–convert-links 會將所有鏈接轉換成本地鏈接以便離線瀏覽.
–page-requisites 表示下載包括CSS樣式文件,圖片等所有所需的文件,以便離線時能正確地現實頁面.
–no-parent 用於限制只下載網站的某一部分內容.
此外, 你可以使用 =P= 設置下載路徑.
以上例子覆蓋了wget最常用的幾個場景.[[https://www.gnu.org/software/wget/manual/wget.html][想更多地瞭解wget]], 你可以使用 =man wget= 查看它的幫助文檔.
若你跟我們一樣有一臺 [[https://www.rosehosting.com/linux-vps-hosting.html][Linux VPS]] , 那麼你只需要讓Linux管理員幫忙在你的服務器上安裝一下wget命令或者爲他們提供一些使用wget的建議.
他們是 24/7 在線的,會幫你解決這個問題.
轉自:https://github.com/lujun9972/linux-document/blob/master/examples/10 wget command examples.org