wget 命令詳解

最後用了 wget -c -r -np ftp://name:pw@server/dir/ 實現從先前虛擬主機ftp上轉移某目錄下所有文件到新VPS上。

所用參數 -c 斷點續傳(備註:使用斷點續傳要求服務器支持斷點續傳),-r 遞歸下載(目錄下的所有文件,包括子目錄),-np 遞歸下載不搜索上層目錄

 

參考:

wget是linux下命令行的下載工具,功能很強大,雖然我很少用,一般下在一些小東西都是直接用firefox,seamonkey這些瀏覽器自帶的下載功能下載,沒有必要用wget或者其他下載工具。但是某些時候卻不是瀏覽器自帶的下載功能和一些其他的下載軟件所能做的的,這時候就得用wget了。比如如果你想下載一個網頁目錄下的所有文件,如何做呢?

先介紹幾個參數:-c 斷點續傳(備註:使用斷點續傳要求服務器支持斷點續傳),-r 遞歸下載(目錄下的所有文件,包括子目錄),-np 遞歸下載不搜索上層目錄,-k 把絕對鏈接轉爲相對鏈接,這樣下載之後的網頁方便瀏覽。-L 遞歸時不進入其他主機,-p 下載網頁所需要的所有文件。

比如:#wget -c -r -np -k -L -p http://www.xxxx.com/yyyy/zzzzz 下載xxxx網站下面的目錄zzzzz

wget是一個強力方便的命令行方式下的下載工具。本文介紹了wget的基本用法。

網絡用戶有時候會遇到需要下載一批文件的情況,有時甚至需要把整個網站下載下來或者製作網站的鏡像。在Windows下的用戶都比較熟悉 Teleport,webzip等等網站下載工具,實際上AIX中也完全可以做到這樣的功能,那就是利用wget工具。wget是一個命令行工具,用來下載網絡文件或者整個網站,它具有自動重試、斷點續傳、支持代理服務器等等強大的功能。它可以完全替代ftp客戶端。wget是在Linux下開發的開放源代碼的軟件,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。

wget雖然功能強大,但是使用起來還是比較簡單的,基本的語法是:wget [參數列表] URL。下面就結合具體的例子來說明一下wget的用法。

1、下載整個http或者ftp站點。

wget http://place.your.url/here

這個命令可以將http://place.your.url/here 首頁下載下來。使用-x會強制建立服務器上一模一樣的目錄,如果使用-nd參數,那麼服務器上下載的所有內容都會加到本地當前目錄。

wget -r http://place.your.url/here

這個命令會按照遞歸的方法,下載服務器上所有的目錄和文件,實質就是下載整個網站。這個命令一定要小心使用,因爲在下載的時候,被下載網站指向的所有地址同樣會被下載,因此,如果這個網站引用了其他網站,那麼被引用的網站也會被下載下來!基於這個原因,這個參數不常用。可以用-l number參數來指定下載的層次。例如只下載兩層,那麼使用-l 2。

要是您想製作鏡像站點,那麼可以使用-m參數,例如:

wget -m http://place.your.url/here

這時wget會自動判斷合適的參數來製作鏡像站點。此時,wget會登錄到服務器上,讀入robots.txt並按robots.txt的規定來執行。

2、斷點續傳。

當文件特別大或者網絡特別慢的時候,往往一個文件還沒有下載完,連接就已經被切斷,此時就需要斷點續傳。wget的斷點續傳是自動的,只需要使用-c參數,例如:

wget -c http://the.url.of/incomplete/file

使用斷點續傳要求服務器支持斷點續傳。-t參數表示重試次數,例如需要重試100次,那麼就寫-t 100,如果設成-t 0,那麼表示無窮次重試,直到連接成功。-T參數表示超時等待時間,例如-T 120,表示等待120秒連接不上就算超時。

3、批量下載。

如果有多個文件需要下載,那麼可以生成一個文件,把每個文件的URL寫一行,例如生成文件download.txt,然後用命令:

wget -i download.txt

這樣就會把download.txt裏面列出的每個URL都下載下來。(如果列的是文件就下載文件,如果列的是網站,那麼下載首頁)

4、選擇性的下載。

可以指定讓wget只下載一類文件,或者不下載什麼文件。例如:

wget -m –reject=gif http://target.web.site/subdirectory

表示下載http://target.web.site/subdirectory,但是忽略gif文件。–accept=LIST 可以接受的文件類型,–reject=LIST拒絕接受的文件類型。

5、密碼和認證。

wget只能處理利用用戶名/密碼方式限制訪問的網站,可以利用兩個參數:

–http-user=USER設置HTTP用戶
–http-passwd=PASS設置HTTP密碼

對於需要證書做認證的網站,就只能利用其他下載工具了,例如curl。

6、利用代理服務器進行下載。

如果用戶的網絡需要經過代理服務器,那麼可以讓wget通過代理服務器進行文件的下載。此時需要在當前用戶的目錄下創建一個.wgetrc文件。文件中可以設置代理服務器:

http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080

分別表示http的代理服務器和ftp的代理服務器。如果代理服務器需要密碼則使用:

–proxy-user=USER設置代理用戶
–proxy-passwd=PASS設置代理密碼

這兩個參數。使用參數–proxy=on/off 使用或者關閉代理。

wget還有很多有用的功能,需要用戶去挖掘

一些關於wget這個強大的網絡工具的使用方法,現列舉如下:

wget 使用技巧集錦
wget的使用形式是:
wget [參數列表] URL

首先來介紹一下wget的主要參數:

· -b:讓wget在後臺運行,記錄文件寫在當前目錄下”wget-log”文件中;
· -t [nuber of times]:嘗試次數,當wget無法與服務器建立連接時,嘗試連接多少次。比如”-t120″表示嘗試120次。當這一項爲”0″的時候,指定嘗試無窮多次直到連接成功爲止,這個設置非常有用,當對方服務器突然關機或者網絡突然中斷的時候,可以在恢復正常後繼續下載沒有傳完的文件;
· -c:斷點續傳,這也是個非常有用的設置,特別當下載比較大的文件的時候,如果中途意外中斷,那麼連接恢復的時候會從上次沒傳完的地方接着傳,而不是又從頭開始,使用這一項需要遠程服務器也支持斷點續傳,一般來講,基於UNIX/Linux的Web/FTP服務器都支持斷點續傳;
· -T [number of seconds]:超時時間,指定多長時間遠程服務器沒有響應就中斷連接,開始下一次嘗試。比如”-T120″表示如果120秒以後遠程服務器沒有發過來數據,就重新嘗試連接。如果網絡速度比較快,這個時間可以設置的短些,相反,可以設置的長一些,一般最多不超過900,通常也不少於60,一般設置在 120左右比較合適;
· -w [number of seconds]:在兩次嘗試之間等待多少秒,比如”-w 100″表示兩次嘗試之間等待100秒;
· -Y on/off:通過/不通過代理服務器進行連接;默認是on
· -Q [byetes]:限制下載文件的總大小最多不能超過多少,比如”-Q2k”表示不能超過2K字節,”-Q3m”表示最多不能超過3M字節,如果數字後面什麼都不加,就表示是以字節爲單位,比如”-Q200″表示最多不能超過200字節;
· -nd:不下載目錄結構,把從服務器所有指定目錄下載的文件都堆到當前目錄裏;
· -x:與”-nd”設置剛好相反,創建完整的目錄結構,例如”wget -nd http://www.baidu.com”將創建在當前目錄下創建”www.baidu.com”子目錄,然後按照服務器實際的目錄結構一級一級建下去,直到所有的文件都傳完爲止;
· -nH:不創建以目標主機域名爲目錄名的目錄,將目標主機的目錄結構直接下到當前目錄下;
· –http-user=username
· –http-passwd=password:如果Web服務器需要指定用戶名和口令,用這兩項來設定;
· –proxy-user=username
· –proxy-passwd=password:如果代理服務器需要輸入用戶名和口令,使用這兩個選項;
· -r:在本機建立服務器端目錄結構;
· -l [depth]:下載遠程服務器目錄結構的深度,例如”-l 5″下載目錄深度小於或者等於5以內的目錄結構或者文件;
· -m:做站點鏡像時的選項,如果你想做一個站點的鏡像,使用這個選項,它將自動設定其他合適的選項以便於站點鏡像;
· -np:只下載目標站點指定目錄及其子目錄的內容。這也是一個非常有用的選項,我們假設某個人的個人主頁裏面有一個指向這個站點其他人個人主頁的連接,而我們只想下載這個人的個人主頁,如果不設置這個選項,甚至–有可能把整個站點給抓下來,這顯然是我們通常不希望的;

II 如何設定wget所使用的代理服務器

wget 可以使用用戶設置文件”.wgetrc”來讀取很多設置,我們這裏主要利用這個文件來是設置代理服務器。使用者用什麼用戶登錄,那麼什麼用戶主目錄下的 “.wgetrc”文件就起作用。例如,”root”用戶如果想使用”.wgetrc”來設置代理服務器,”/root/.wgert”就起作用,下面給出一個”.wgetrc”文件的內容,可以參照這個例子來編寫自己的”wgetrc”文件:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
這兩行的含義是,代理服務器IP地址爲:111.111.111.111,端口號爲:80。第一行指定HTTP協議所使用的代理服務器,第二行指定FTP協議所使用的代理服務器。

get如何使用學校的socks代理?
/usr/local/etc/wgetrc 或~/.wgetrc:

http_proxy = 202.119.24.35:8080
ftp_proxy = 202.119.24.35:8080
proxy-user = user
proxy-passwd = password
use_proxy = on
參數:
代碼:

$ wget –help

GNU Wget 1.9.1,非交互式的網絡文件下載工具。
用法: wget [選項]… [URL]…

長選項必須用的參數在使用短選項時也是必須的。

啓動:

-V, –version 顯示 Wget 的版本並且退出。
-h, –help 打印此幫助。
-b, -background 啓動後進入後臺操作。
-e, -execute=COMMAND 運行‘.wgetrc’形式的命令。

日誌記錄及輸入文件:

-o, –output-file=文件 將日誌消息寫入到指定文件中。
-a, –append-output=文件 將日誌消息追加到指定文件的末端。
-d, –debug 打印調試輸出。
-q, –quiet 安靜模式(不輸出信息)。
-v, –verbose 詳細輸出模式(默認)。
-nv, –non-verbose 關閉詳細輸出模式,但不進入安靜模式。
-i, –input-file=文件 下載從指定文件中找到的 URL。
-F, –force-html 以 HTML 方式處理輸入文件。
-B, –base=URL 使用 -F -i 文件選項時,在相對鏈接前添加指定的 URL。

下載:

-t, –tries=次數 配置重試次數(0 表示無限)。
–retry-connrefused 即使拒絕連接也重試。
-O –output-document=文件 將數據寫入此文件中。
-nc, –no-clobber 不更改已經存在的文件,也不使用在文件名後
添加 .#(# 爲數字)的方法寫入新的文件。
-c, –continue 繼續接收已下載了一部分的文件。
–progress=方式 選擇下載進度的表示方式。
-N, –timestamping 除非遠程文件較新,否則不再取回。
-S, –server-response 顯示服務器迴應消息。
–spider 不下載任何數據。
-T, –timeout=秒數 配置讀取數據的超時時間 (秒數)。
-w, –wait=秒數 接收不同文件之間等待的秒數。
–waitretry=秒數 在每次重試之間稍等一段時間 (由 1 秒至指定的 秒數不等)。
–random-wait 接收不同文件之間稍等一段時間(由 0 秒至 2*WAIT 秒不等)。
-Y, –proxy=on/off 打開或關閉代理服務器。
-Q, –quota=大小 配置接收數據的限額大小。
–bind-address=地址 使用本機的指定地址 (主機名稱或 IP) 進行連接。
–limit-rate=速率 限制下載的速率。
–dns-cache=off 禁止查找存於高速緩存中的 DNS。
–restrict-file-names=OS 限制文件名中的字符爲指定的 OS (操作系統) 所允許的字符。

目錄:

-nd –no-directories 不創建目錄。
-x, –force-directories 強制創建目錄。
-nH, –no-host-directories 不創建含有遠程主機名稱的目錄。
-P, –directory-prefix=名稱 保存文件前先創建指定名稱的目錄。
–cut-dirs=數目 忽略遠程目錄中指定數目的目錄層。

HTTP 選項:

–http-user=用戶 配置 http 用戶名。
–http-passwd=密碼 配置 http 用戶密碼。
-C, –cache=on/off (不)使用服務器中的高速緩存中的數據 (默認是使用的)。
-E, –html-extension 將所有 MIME 類型爲 text/html 的文件都加上 .html 擴展文件名。
–ignore-length 忽略“Content-Length”文件頭字段。
–header=字符串 在文件頭中添加指定字符串。
–proxy-user=用戶 配置代理服務器用戶名。
–proxy-passwd=密碼 配置代理服務器用戶密碼。
–referer=URL 在 HTTP 請求中包含“Referer:URL”頭。
-s, –save-headers 將 HTTP 頭存入文件。
-U, –user-agent=AGENT 標誌爲 AGENT 而不是 Wget/VERSION。
–no-http-keep-alive 禁用 HTTP keep-alive(持久性連接)。
–cookies=off 禁用 cookie。
–load-cookies=文件 會話開始前由指定文件載入 cookie。
–save-cookies=文件 會話結束後將 cookie 保存至指定文件。
–post-data=字符串 使用 POST 方法,發送指定字符串。
–post-file=文件 使用 POST 方法,發送指定文件中的內容。

HTTPS (SSL) 選項:

–sslcertfile=文件 可選的客戶段端證書。
–sslcertkey=密鑰文件 對此證書可選的“密鑰文件”。
–egd-file=文件 EGD socket 文件名。
–sslcadir=目錄 CA 散列表所在的目錄。
–sslcafile=文件 包含 CA 的文件。
–sslcerttype=0/1 Client-Cert 類型 0=PEM (默認) / 1=ASN1 (DER)
–sslcheckcert=0/1 根據提供的 CA 檢查服務器的證書
–sslprotocol=0-3 選擇 SSL 協議;0=自動選擇,
1=SSLv2 2=SSLv3 3=TLSv1

FTP 選項:

-nr, –dont-remove-listing 不刪除“.listing”文件。
-g, –glob=on/off 設置是否展開有通配符的文件名。
–passive-ftp 使用“被動”傳輸模式。
–retr-symlinks 在遞歸模式中,下載鏈接所指示的文件(連至目錄則例外)。

遞歸下載:

-r, –recursive 遞歸下載。
-l, –level=數字 最大遞歸深度(inf 或 0 表示無限)。
–delete-after 刪除下載後的文件。
-k, –convert-links 將絕對鏈接轉換爲相對鏈接。
-K, –backup-converted 轉換文件 X 前先將其備份爲 X.orig。
-m, –mirror 等效於 -r -N -l inf -nr 的選項。
-p, –page-requisites 下載所有顯示完整網頁所需的文件,例如圖像。
–strict-comments 打開對 HTML 備註的嚴格(SGML)處理選項。

遞歸下載時有關接受/拒絕的選項:

-A, –accept=列表 接受的文件樣式列表,以逗號分隔。
-R, –reject=列表 排除的文件樣式列表,以逗號分隔。
-D, –domains=列表 接受的域列表,以逗號分隔。
–exclude-domains=列表 排除的域列表,以逗號分隔。
–follow-ftp 跟隨 HTML 文件中的 FTP 鏈接。
–follow-tags=列表 要跟隨的 HTML 標記,以逗號分隔。
-G, –ignore-tags=列表 要忽略的 HTML 標記,以逗號分隔。
-H, –span-hosts 遞歸時可進入其它主機。
-L, –relative 只跟隨相對鏈接。
-I, –include-directories=列表 要下載的目錄列表。
-X, –exclude-directories=列表 要排除的目錄列表。
-np, –no-parent 不搜索上層目錄。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章