wget命令詳解

導讀: wget是Linux中的一個下載文件的工具,wget是在Linux下開發的開放源代碼的軟件,做者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。html

它用在命令行下。對於Linux用戶是必不可少的工具,尤爲對於網絡管理員,常常要下載一些軟件或從遠程服務器恢復備份到本地服務器。若是咱們使用虛擬主機,處理這樣的事務咱們只能先從遠程服務器下載到咱們電腦磁盤,而後再用ftp工具上傳到服務器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則能夠直接下載到服務器而不用通過上傳這一步。wget工具體積小但功能完善,它支持斷點下載功能,同時支持FTP和HTTP下載方式,支持代理服務器和設置起來方便簡單。下面咱們以實例的形式說明怎麼使用wget。 瀏覽器

 

首先安裝wget緩存

1 [root@network test]# yum install -y wget

查看幫助手冊服務器

1 [root@network test]# wget --help
  1 GNU Wget 1.14,非交互式的網絡文件下載工具。
  2 用法: wget [選項]... [URL]...
  3 
  4 長選項所必須的參數在使用短選項時也是必須的。
  5 
  6 啓動:
  7   -V,  --version           顯示 Wget 的版本信息並退出。
  8   -h,  --help              打印此幫助。
  9   -b,  --background        啓動後轉入後臺。
 10   -e,  --execute=COMMAND   運行一個「.wgetrc」風格的命令。
 11 
 12 日誌和輸入文件:
 13   -o,  --output-file=FILE    將日誌信息寫入 FILE。
 14   -a,  --append-output=FILE  將信息添加至 FILE。
 15   -d,  --debug               打印大量調試信息。
 16   -q,  --quiet               安靜模式 (無信息輸出)。
 17   -v,  --verbose             詳盡的輸出 (此爲默認值)。
 18   -nv, --no-verbose          關閉詳盡輸出,但不進入安靜模式。
 19        --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
 20   -i,  --input-file=FILE     下載本地或外部 FILE 中的 URLs。
 21   -F,  --force-html          把輸入文件當成 HTML 文件。
 22   -B,  --base=URL            解析與 URL 相關的
 23                              HTML 輸入文件 (由 -i -F 選項指定)。
 24        --config=FILE         Specify config file to use.
 25 
 26 下載:
 27   -t,  --tries=NUMBER            設置重試次數爲 NUMBER (0 表明無限制)。
 28        --retry-connrefused       即便拒絕鏈接也是重試。
 29   -O,  --output-document=FILE    將文檔寫入 FILE。
 30   -nc, --no-clobber              skip downloads that would download to
 31                                  existing files (overwriting them).
 32   -c,  --continue                斷點續傳下載文件。
 33        --progress=TYPE           選擇進度條類型。
 34   -N,  --timestamping            只獲取比本地文件新的文件。
 35   --no-use-server-timestamps     不用服務器上的時間戳來設置本地文件。
 36   -S,  --server-response         打印服務器響應。
 37        --spider                  不下載任何文件。
 38   -T,  --timeout=SECONDS         將全部超時設爲 SECONDS 秒。
 39        --dns-timeout=SECS        設置 DNS 查尋超時爲 SECS 秒。
 40        --connect-timeout=SECS    設置鏈接超時爲 SECS 秒。
 41        --read-timeout=SECS       設置讀取超時爲 SECS 秒。
 42   -w,  --wait=SECONDS            等待間隔爲 SECONDS 秒。
 43        --waitretry=SECONDS       在獲取文件的重試期間等待 1..SECONDS 秒。
 44        --random-wait             獲取多個文件時,每次隨機等待間隔
 45                                  0.5*WAIT...1.5*WAIT 秒。
 46        --no-proxy                禁止使用代理。
 47   -Q,  --quota=NUMBER            設置獲取配額爲 NUMBER 字節。
 48        --bind-address=ADDRESS    綁定至本地主機上的 ADDRESS (主機名或是 IP)。
 49        --limit-rate=RATE         限制下載速率爲 RATE。
 50        --no-dns-cache            關閉 DNS 查尋緩存。
 51        --restrict-file-names=OS  限定文件名中的字符爲 OS 容許的字符。
 52        --ignore-case             匹配文件/目錄時忽略大小寫。
 53   -4,  --inet4-only              僅鏈接至 IPv4 地址。
 54   -6,  --inet6-only              僅鏈接至 IPv6 地址。
 55        --prefer-family=FAMILY    首先鏈接至指定協議的地址
 56                                  FAMILY 爲 IPv6,IPv4 或是 none。
 57        --user=USER               將 ftp 和 http 的用戶名均設置爲 USER。
 58        --password=PASS           將 ftp 和 http 的密碼均設置爲 PASS。
 59        --ask-password            提示輸入密碼。
 60        --no-iri                  關閉 IRI 支持。
 61        --local-encoding=ENC      IRI (國際化資源標識符) 使用 ENC 做爲本地編碼。
 62        --remote-encoding=ENC     使用 ENC 做爲默認遠程編碼。
 63        --unlink                  remove file before clobber.
 64 
 65 目錄:
 66   -nd, --no-directories           不建立目錄。
 67   -x,  --force-directories        強制建立目錄。
 68   -nH, --no-host-directories      不要建立主目錄。
 69        --protocol-directories     在目錄中使用協議名稱。
 70   -P,  --directory-prefix=PREFIX  以 PREFIX/... 保存文件
 71        --cut-dirs=NUMBER          忽略遠程目錄中 NUMBER 個目錄層。
 72 
 73 HTTP 選項:
 74        --http-user=USER        設置 http 用戶名爲 USER。
 75        --http-password=PASS    設置 http 密碼爲 PASS。
 76        --no-cache              不在服務器上緩存數據。
 77        --default-page=NAME     改變默認頁
 78                                (默認頁一般是「index.html」)。
 79   -E,  --adjust-extension      以合適的擴展名保存 HTML/CSS 文檔。
 80        --ignore-length         忽略頭部的‘Content-Length’區域。
 81        --header=STRING         在頭部插入 STRING。
 82        --max-redirect          每頁所容許的最大重定向。
 83        --proxy-user=USER       使用 USER 做爲代理用戶名。
 84        --proxy-password=PASS   使用 PASS 做爲代理密碼。
 85        --referer=URL           在 HTTP 請求頭包含‘Referer: URL’。
 86        --save-headers          將 HTTP 頭保存至文件。
 87   -U,  --user-agent=AGENT      標識爲 AGENT 而不是 Wget/VERSION。
 88        --no-http-keep-alive    禁用 HTTP keep-alive (永久鏈接)。
 89        --no-cookies            不使用 cookies。
 90        --load-cookies=FILE     會話開始前從 FILE 中載入 cookies。
 91        --save-cookies=FILE     會話結束後保存 cookies 至 FILE。
 92        --keep-session-cookies  載入並保存會話 (非永久) cookies。
 93        --post-data=STRING      使用 POST 方式;把 STRING 做爲數據發送。
 94        --post-file=FILE        使用 POST 方式;發送 FILE 內容。
 95        --content-disposition   當選中本地文件名時
 96                                容許 Content-Disposition 頭部 (尚在實驗)。
 97        --content-on-error      output the received content on server errors.
 98        --auth-no-challenge     發送不含服務器詢問的首次等待
 99                                的基本 HTTP 驗證信息。
100 
101 HTTPS (SSL/TLS) 選項:
102        --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
103                                 SSLv3, TLSv1, TLSv1_1 and TLSv1_2.
104        --no-check-certificate   不要驗證服務器的證書。
105        --certificate=FILE       客戶端證書文件。
106        --certificate-type=TYPE  客戶端證書類型,PEM 或 DER。
107        --private-key=FILE       私鑰文件。
108        --private-key-type=TYPE  私鑰文件類型,PEM 或 DER。
109        --ca-certificate=FILE    帶有一組 CA 認證的文件。
110        --ca-directory=DIR       保存 CA 認證的哈希列表的目錄。
111        --random-file=FILE       帶有生成 SSL PRNG 的隨機數據的文件。
112        --egd-file=FILE          用於命名帶有隨機數據的 EGD 套接字的文件。
113 
114 FTP 選項:
115        --ftp-user=USER         設置 ftp 用戶名爲 USER。
116        --ftp-password=PASS     設置 ftp 密碼爲 PASS。
117        --no-remove-listing     不要刪除‘.listing’文件。
118        --no-glob               不在 FTP 文件名中使用通配符展開。
119        --no-passive-ftp        禁用「passive」傳輸模式。
120        --preserve-permissions  保留遠程文件的權限。
121        --retr-symlinks         遞歸目錄時,獲取連接的文件 (而非目錄)。
122 
123 WARC options:
124        --warc-file=FILENAME      save request/response data to a .warc.gz file.
125        --warc-header=STRING      insert STRING into the warcinfo record.
126        --warc-max-size=NUMBER    set maximum size of WARC files to NUMBER.
127        --warc-cdx                write CDX index files.
128        --warc-dedup=FILENAME     do not store records listed in this CDX file.
129        --no-warc-compression     do not compress WARC files with GZIP.
130        --no-warc-digests         do not calculate SHA1 digests.
131        --no-warc-keep-log        do not store the log file in a WARC record.
132        --warc-tempdir=DIRECTORY  location for temporary files created by the
133                                  WARC writer.
134 
135 遞歸下載:
136   -r,  --recursive          指定遞歸下載。
137   -l,  --level=NUMBER       最大遞歸深度 (inf 或 0 表明無限制,即所有下載)。
138        --delete-after       下載完成後刪除本地文件。
139   -k,  --convert-links      讓下載獲得的 HTML 或 CSS 中的連接指向本地文件。
140   --backups=N   before writing file X, rotate up to N backup files.
141   -K,  --backup-converted   在轉換文件 X 前先將它備份爲 X.orig。
142   -m,  --mirror             -N -r -l inf --no-remove-listing 的縮寫形式。
143   -p,  --page-requisites    下載全部用於顯示 HTML 頁面的圖片之類的元素。
144        --strict-comments    用嚴格方式 (SGML) 處理 HTML 註釋。
145 
146 遞歸接受/拒絕:
147   -A,  --accept=LIST               逗號分隔的可接受的擴展名列表。
148   -R,  --reject=LIST               逗號分隔的要拒絕的擴展名列表。
149        --accept-regex=REGEX        regex matching accepted URLs.
150        --reject-regex=REGEX        regex matching rejected URLs.
151        --regex-type=TYPE           regex type (posix|pcre).
152   -D,  --domains=LIST              逗號分隔的可接受的域列表。
153        --exclude-domains=LIST      逗號分隔的要拒絕的域列表。
154        --follow-ftp                跟蹤 HTML 文檔中的 FTP 連接。
155        --follow-tags=LIST          逗號分隔的跟蹤的 HTML 標識列表。
156        --ignore-tags=LIST          逗號分隔的忽略的 HTML 標識列表。
157   -H,  --span-hosts                遞歸時轉向外部主機。
158   -L,  --relative                  只跟蹤有關係的連接。
159   -I,  --include-directories=LIST  容許目錄的列表。
160   --trust-server-names             use the name specified by the redirection
161                                    url last component.
162   -X,  --exclude-directories=LIST  排除目錄的列表。
163   -np, --no-parent                 不追溯至父目錄。

 

一、使用 wget 下載單個文件 cookie

如下的例子是從網絡下載一個文件並保存在當前目錄網絡

在下載的過程當中會顯示進度條,包含(下載完成百分比,已經下載的字節,當前下載速度,剩餘下載時間)。session

1 wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

二、使用 wget -O 下載並以不一樣的文件名保存 app

1 [root@network test]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 [root@network test]# ls
3 wordpress-4.9.4-zh_CN.tar.gz

咱們可使用參數-O來指定一個文件名:dom

1 wget -O wordpress.tar.gz  http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 wordpress.tar.gz

三、使用 wget -c 斷點續傳 
ide

使用wget -c從新啓動下載中斷的文件:

對於咱們下載大文件時忽然因爲網絡等緣由中斷很是有幫助,咱們能夠繼續接着下載而不是從新下載一個文件

 

1  wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

四、使用 wget -b 後臺下載

對於下載很是大的文件的時候,咱們可使用參數-b進行後臺下載

1 [root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 繼續在後臺運行,pid 爲 14633 將把輸出寫入至 「wget-log」。

你可使用如下命令來察看下載進度

 1 [root@network test]# tail -f wget-log
 2   8550K .......... .......... .......... .......... .......... 96%  814K 0s
 3   8600K .......... .......... .......... .......... .......... 97% 9.53M 0s
 4   8650K .......... .......... .......... .......... .......... 98% 86.8M 0s
 5   8700K .......... .......... .......... .......... .......... 98%  145M 0s
 6   8750K .......... .......... .......... .......... .......... 99% 67.4M 0s
 7   8800K .......... .......... .......... .......... .......... 99%  107M 0s
 8   8850K .......... .........                                  100% 1.95M=16s
 9 
10 2018-11-10 15:39:07 (564 KB/s) - 已保存 「wordpress-4.9.4-zh_CN.tar.gz.2」 [9082696/9082696])

五、假裝代理名稱下載 

有些網站能經過根據判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你能夠經過–user-agent參數假裝。

六、使用 wget –spider 測試下載連接

當你打算進行定時下載,你應該在預約時間測試下載連接是否有效。咱們能夠增長–spider參數進行檢查。

 1 wget –spider URL 
 2 若是下載連接正確,將會顯示 
 3  
 4 wget –spider URL 
 5 Spider mode enabled. Check if remote file exists. 
 6 HTTP request sent, awaiting response… 200 OK 
 7 Length: unspecified [text/html] 
 8 Remote file exists and could contain further links, 
 9 but recursion is disabled — not retrieving. 
10 這保證了下載能在預約的時間進行,但當你給錯了一個連接,將會顯示以下錯誤 
11  
12 wget –spider url 
13 Spider mode enabled. Check if remote file exists. 
14 HTTP request sent, awaiting response… 404 Not Found 
15 Remote file does not exist — broken link!!! 


你能夠在如下幾種狀況下使用spider參數:

1 定時下載以前進行檢查
2 間隔檢測網站是否可用
3 檢查網站頁面的死連接

七、使用 wget –tries 增長重試次數 

若是網絡有問題或下載一個大文件也有可能失敗。wget默認重試20次鏈接下載文件。若是須要,你可使用–tries增長重試次數。

1 wget –tries=40 URL 

八、使用 wget -i 下載多個文件 

 1 首先,保存一份下載連接文件 
 2  
 3 cat > filelist.txt 
 4 url1 
 5 url2 
 6 url3 
 7 url4 
 8 接着使用這個文件和參數-i下載 
 9  
10 wget -i filelist.txt

九、使用 wget –mirror 鏡像網站 

 

十、使用 wget –reject 過濾指定格式下載 

你想下載一個網站,但你不但願下載圖片,你可使用如下命令。

1 wget –reject=gif url 

十一、使用 wget -o 把下載信息存入日誌文件 

你不但願下載信息直接顯示在終端而是在一個日誌文件,可使用如下命令:

1 wget -o download.log URL
相關文章
相關標籤/搜索