wget
wget是一個從網絡上自動下載文件的自由工具,支持通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載,並可以使用HTTP代理。wget名稱的由來是“World Wide Web”與“get”的結合。
1、wget下載單個文件
#wget http://domain/file
下載的時候會顯示:文件的大小、保存的名稱、進度條、下載速度、時間
root@kali:~# wget https://curl.haxx.se/download/curl-7.54.1.zip --2017-07-09 03:26:46-- https://curl.haxx.se/download/curl-7.54.1.zip 正在解析主機 curl.haxx.se (curl.haxx.se)... 151.101.74.49 正在連接 curl.haxx.se (curl.haxx.se)|151.101.74.49|:443... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:5189701 (4.9M) [application/zip] 正在保存至: “curl-7.54.1.zip” curl-7.54.1.zip 12%[===========> ] 639.25K 30.7KB/s eta 2m 8s ^
2、指定保存的名稱
#wget -O newName http://domain/file
默認情況wget會用斜杠‘/’后面的字符來命名保存的名稱
root@kali:~# wget http://xiazai.zol.com.cn/down.php?softid=442597&subcateid=1446&site=10&checkStr=066ab9d88b1f0c534&pos=downloader_main&rand=1200a2 正在保存至: “down.php?softid=442597”
顯然這種特殊格式下載地址得出的命名不是我們想要的,即可用-O參數來自定義命名
root@kali:~# wget -O testName http://xiazai.zol.com.cn/down.php?softid=442597&subcateid=1446&site=10&checkStr=066ab9d88b1f0c534&pos=downloader_main&rand=1200a2 [1] 6613 [2] 6614 [3] 6615 [4] 6616 [5] 6617 root@kali:~# --2017-07-09 03:36:20-- http://xiazai.zol.com.cn/down.php?softid=442597 正在解析主機 xiazai.zol.com.cn (xiazai.zol.com.cn)... 123.103.57.124 正在連接 xiazai.zol.com.cn (xiazai.zol.com.cn)|123.103.57.124|:80... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:0 [text/html] 正在保存至: “testName” testName [ <=> ] 0 --.-KB/s in 0s
3、斷點續傳
#wget -c http://domain/file
適用於下載大文件或者網絡不好的情況,需要服務器支持斷點續傳
不停重連,直到連接成功 root@kali:~# wget -c https://curl.haxx.se/download/curl-7.54.1.zip -t參數表示重連次數,表示只重連10次,-t為0時不限制 root@kali:~# wget -c -t 10 https://curl.haxx.se/download/curl-7.54.1.zip -T參數表示超時等待時間,以秒為單位,表示60秒連不上超時 root@kali:~# wget -c -T 60 https://curl.haxx.se/download/curl-7.54.1.zip
4、指定下載速度
#wget --limit-rate=1024k http://domain/file
表示限制速度為1MB/s
root@kali:~# wget --limit-rate=1024k https://curl.haxx.se/download/curl-7.54.1.zip --2017-07-09 04:05:49-- https://curl.haxx.se/download/curl-7.54.1.zip 正在解析主機 curl.haxx.se (curl.haxx.se)... 151.101.74.49 正在連接 curl.haxx.se (curl.haxx.se)|151.101.74.49|:443... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:5189701 (4.9M) [application/zip] 正在保存至: “curl-7.54.1.zip.1” curl-7.54.1.zip.1 11%[==========> ] 599.33K 1021.3KB/s eta 54s ^
5、批量下載
#wget -i download.txt
多個下載鏈接可以分行寫在文本中,實現批量下載
6、選擇性下載
#wget -m --accept=jpg http://domain/dir //--accept參數表示可以接受的文件類型
#wget -m --reject=jpg http://domain/dir //--reject參數表示拒絕接受的文件類型
或者
#wget -r -A.jpg http://domain/dir //表示下載所有jpg文件
7、后台下載
#wget -b http://domain/file
后台下載時,會在當前目錄中產生wget-log文件
root@kali:~# wget -b https://curl.haxx.se/download/curl-7.54.1.zip 繼續在后台運行,pid 為 6705。 將把輸出寫入至 “wget-log”。
root@kali:~# cat wget-log --2017-07-09 04:24:31-- https://curl.haxx.se/download/curl-7.54.1.zip 正在解析主機 curl.haxx.se (curl.haxx.se)... 151.101.74.49 正在連接 curl.haxx.se (curl.haxx.se)|151.101.74.49|:443... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:5189701 (4.9M) [application/zip] 正在保存至: “curl-7.54.1.zip.4” 0K .......... .......... .......... .......... .......... 0% 74.9K 67s 50K .......... .......... .......... .......... .......... 1% 88.6K 61s 100K .......... .......... .......... .......... .......... 2% 49.8K 73s
8、利用代理服務器下載
如果下載需要經過代理服務器,wget可以通過代理服務器進行下載。
方法一、在環境變量中設置代理
export http_proxy=0.0.0.0:8080
方法二、使用配置文件
可以直接修改/etc/wgetrc,也可以當前目錄下創建.wgetrc文件,配置代理服務器
https-proxy = 0.0.0.0:8080 //https代理服務器 http-proxy = 0.0.0.0:8080 //http代理服務器 ftp-proxy = 0.0.0.0:8080 //ftp代理服務器
use_proxy = on //開啟代理
這里 use_proxy = on 開啟了代理,如果不想使用代理,每次都修改此文件太麻煩,我們可以在命令中使用-Y參數來臨時設置:
-Y, --proxy=on/off 打開或關閉代理
方法三、使用-e參數
適用於臨時代理
-e參數表示運行一個“.wgetrc”風格的命令 #wget -e "http-proxy=0.0.0.0:8080" http://domain/file
注意:如果代理服務器需要密碼則使用
--proxy-user=代理用戶 --proxy-passwd=代理密碼
9、測試下載地址是否有效
#wget --spider DOWNLOAD-URL
正確的下載地址會顯示
root@kali:~# wget --spider https://curl.haxx.se/download/curl-7.54.1.zip 打開 Spider 模式。檢查是否存在遠程文件。 --2017-07-09 04:53:33-- https://curl.haxx.se/download/curl-7.54.1.zip 正在解析主機 curl.haxx.se (curl.haxx.se)... 151.101.78.49 正在連接 curl.haxx.se (curl.haxx.se)|151.101.78.49|:443... 已連接。 已發出 HTTP 請求,正在等待回應... 200 OK 長度:5189701 (4.9M) [application/zip] 存在遠程文件。
無效的下載地址會顯示
root@kali:~# wget --spider https://curl.haxx.se/download/xxx.zip 打開 Spider 模式。檢查是否存在遠程文件。 --2017-07-09 04:53:45-- https://curl.haxx.se/download/xxx.zip 正在解析主機 curl.haxx.se (curl.haxx.se)... 151.101.78.49 正在連接 curl.haxx.se (curl.haxx.se)|151.101.78.49|:443... 已連接。 已發出 HTTP 請求,正在等待回應... 404 Not Found 遠程文件不存在 -- 鏈接失效!!!
10、FTP下載
匿名FTP
wget ftp-url
需登陸認證的FTP
wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL
11、針對提示沒有認證不允許下載
wget --no-check-certificate DOWNLOAD-URL //不要驗證服務器的證書。
12、下載一個完整的網站
適用於完整下載一個網站用於本地瀏覽
wget --mirror -p --convert-links -P LOCAL-DIR WEBSITE-URL
--mirror:打開鏡像選項
-p:下載所有用於顯示給定網址所必須的文件
--convert-links:下載以后,轉換鏈接用於本地顯示
-P LOCAL_DIR:保存所有的文件或目錄到指定的目錄下
待更新。。。