Linux 基礎教程 38-檔案下載

Surpassme發表於2018-08-17

什麼是wget

    wget用原始幫助裡面的英文來講就是:The non-interactive network downloader,非互動式網路下載器。它支援HTTP、HTTPS、FTP等協議,同時也支援基於HTTP代理的下載。其他主要特點如下所示:

  • 可以工作於後臺,而不需要登入到系統
  • 可以跟蹤HTML、XHTML、CSS等檔案,從而將伺服器上的頁面下載到本地進行離線瀏覽。
  • 支援慢速和不穩定網路下的下載和連線。

常用語法

wget [選項] [URL]

常用選項引數如下所示:

選項 說明
-V,–version 顯示版本資訊
-h,–help 顯示幫助資訊
-b,–backgroup 以後臺形式進行執行
-e command,–execute command 如果命令屬於.wgetrc,則執行命令
-o logfile,–output-file=logfile 將日誌列印到檔案中
-a logfile,–append-output=logfile 追加日誌到檔案中
-q,–quiet 靜默模式,關閉wget的輸出資訊
-v,–verbose 顯示詳細的資訊,wget預設模式
-i file,–inpu-file=file 從檔案中讀取URL下載地址
-B URL,–base=URL 設定連線的相對URL地址
–bind-address=ADDRESS 設定連線的IP地址或主機名
-t number,–tries=number 設定重試次數,0和inf則代表一直重試,預設值為20
-O file,–output-document=file 將下載檔案中的內容儲存到本地檔案中
-nc,–no-clobber 如果下載檔案已經存在,則不下載
-c,–continue 繼續執行上次的下載任務
-N,–timestamping 增加時間戳
-S,–server-response 列印HTTP、FTP頭部資訊
-T seconds,–timeout=seconds 設定超時時間
–limit-rate=amount 限制下載速度
-X 設定下載排除項
-r,–recursive 遞迴下載檔案
-nH, –no-host-directories 禁止建立以域名命令的資料夾
–cut-dirs=number 忽略下載地址中的層次目錄

配置檔案

    要想好好使用wget命令,還是先了解一下wget隱藏的一些潛規則,位置在:

  • /etc/wgetrc
  • 家目錄中的.wgetrc

1、wget命令有一些選項可以使用逗號進行隔開,如-X可以設定排除項,如果僅僅是一次,則無所謂,但如果長期均不需要下載這些目錄,則可以將這些排除項新增.wgetrc配置檔案中

exclude_directories=test,tmp,temp

2、在第一種情況下,突然又想下載這些檔案時,可以去掉配置檔案中設定,也可以採用以下的方法:

wget -r -X `` ftp://192.168.8.8

常用示例

1、下載檔案:

[root@localhost ]# wget https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_redBlue_32fe2c69.png
--2018-07-28 19:55:17--  https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_redBlue_32fe2c69.png
正在解析主機 ss0.bdstatic.com (ss0.bdstatic.com)... 180.163.198.32
正在連線 ss0.bdstatic.com (ss0.bdstatic.com)|180.163.198.32|:443... 已連線。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:8618 (8.4K) [image/png]
正在儲存至: “logo_redBlue_32fe2c69.png”

100%[=============================================================================================================================>] 8,618       --.-K/s 用時 0.002s

2018-07-28 19:55:17 (3.80 MB/s) - 已儲存 “logo_redBlue_32fe2c69.png” [8618/8618])

2、下載目錄和後臺執行

[root@localhost test]# wget -r -b https://mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
繼續在後臺執行,pid 為 26252。
將把輸出寫入至 “wget-log”。
[root@localhost test]# ll
總用量 4
drwxr-xr-x 3 root root   38 7月  28 20:14 mirrors.aliyun.com
-rw-r--r-- 1 root root 1257 7月  28 20:14 wget-log
[root@localhost test]# cat wget-log 
--2018-07-28 20:14:11--  https://mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
正在解析主機 mirrors.aliyun.com (mirrors.aliyun.com)... 180.163.155.11, 180.163.155.8, 180.163.155.9, ...
正在連線 mirrors.aliyun.com (mirrors.aliyun.com)|180.163.155.11|:443... 已連線。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:3518 (3.4K) [text/html]
正在儲存至: “mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/index.html”

3、禁止生成下載地址中的多級目錄

[root@localhost test]# wget -b -r -nH --cut-dir=6 https://mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
繼續在後臺執行,pid 為 34849。
將把輸出寫入至 “wget-log”。
[root@localhost test]# ll
總用量 12
-rw-r--r-- 1 root root 3518 7月  28 20:25 index.html
-rw-r--r-- 1 root root  295 10月 31 2017 robots.txt
-rw-r--r-- 1 root root 1113 7月  28 20:25 wget-log

下載目錄路徑如下所示:

情況 結果
-r mirrors.aliyun.com/centos/7.5.1804/atomic/x86_64/adb/
-nH centos/7.5.1804/atomic/x86_64/adb/
-nH –cut-dir=1 centos/7.5.1804/atomic/x86_64/adb/
-nH –cut-dir=4 adb/
-nH –cut-dir=6 .

4、將下載的檔案儲存到本地檔案中

[root@localhost test]# wget -t 2 -o log.txt https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/sha256sum.txt  -O test.txt
[root@localhost test]# ll
總用量 8
-rw-r--r-- 1 root root 554 7月  28 20:37 log.txt
-rw-r--r-- 1 root root 598 5月  10 03:59 test.txt
[root@localhost test]# cat log.txt
--2018-07-28 20:37:28--  https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/sha256sum.txt
正在解析主機 mirrors.aliyun.com (mirrors.aliyun.com)... 180.163.155.9, 180.163.155.10, 180.163.155.11, ...
正在連線 mirrors.aliyun.com (mirrors.aliyun.com)|180.163.155.9|:443... 已連線。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:598 [text/plain]
正在儲存至: “test.txt”
     0K                    100%  175M=0s
2018-07-28 20:37:28 (175 MB/s) - 已儲存 “test.txt” [598/598])

[root@localhost test]# cat test.txt
506e4e06abf778c3435b4e5745df13e79ebfc86565d7ea1e128067ef6b5a6345  CentOS-7-x86_64-DVD-1804.iso
b346daae2a93caed88e822e722e7284c648f9919d475ff98489b424350f99a45  CentOS-7-x86_64-LiveGNOME-1804.iso
040ddfb27d30e48efad8709c9df946202cec169077c843fd2cbe8d802187ff8e  CentOS-7-x86_64-LiveKDE-1804.iso
714acc0aefb32b7d51b515e25546835e55a90da9fb00417fbee2d03a62801efd  CentOS-7-x86_64-Minimal-1804.iso
99723c8b87dcec21df8aed23de1eb810346d42cfd2a3fafafe70a68296053417  CentOS-7-x86_64-Everything-1804.iso
937bf0a7b0932817f84f7230f15ed88911bbbd85c0c958680792b7f8d8f9c1a9  CentOS-7-x86_64-NetInstall-1804.iso

本文同步在微信訂閱號上釋出,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼新增關注:
MyQRCode.jpg

相關文章