Linux用wget命令行方式進(jìn)行網(wǎng)絡(luò)下載文件-wget 命令范文_第1頁
Linux用wget命令行方式進(jìn)行網(wǎng)絡(luò)下載文件-wget 命令范文_第2頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、linux用wget命令行方式進(jìn)行網(wǎng)絡(luò)下載文件:wget 命令 wget的使用形式是:wget參數(shù)列表url,接下來是辦公室歐陽老師為大家收集的linux用wget命令行方式進(jìn)行網(wǎng)絡(luò)下載文件,歡迎大家閱讀:linux用wget命令行方式進(jìn)行網(wǎng)絡(luò)下載文件首先來介紹一下wget的主要參數(shù): -b:讓wget在后臺運(yùn)行,記錄文件寫在當(dāng)前目錄下wget-log文件中; -t nuber of times:嘗試次數(shù),當(dāng)wget無法與服務(wù)器建立連接時,嘗試連接多少次 。比如-t 120′表示嘗試120次。當(dāng)這一項(xiàng)為0′的時候,指定嘗試無窮多次直到連接成功為止,這個 設(shè)置非常有用,當(dāng)

2、對方服務(wù)器突然關(guān)機(jī)或者網(wǎng)絡(luò)突然中斷的時候,可以在恢復(fù)正常后繼續(xù) 下載沒有傳完的文件; -c:斷點(diǎn)續(xù)傳,這也是個非常有用的設(shè)置,特別當(dāng)下載比較大的文件的時候,如果中途意外中斷,那么連接恢復(fù)的時候會從上次沒傳完的地方接著傳,而不是又從頭開始,使用這一項(xiàng)需要遠(yuǎn)程服務(wù)器也支持?jǐn)帱c(diǎn)續(xù)傳,一般來講,基于unix/linux的web/ftp服務(wù)器 都支持?jǐn)帱c(diǎn)續(xù)傳; -t number of seconds:超時時間,指定多長時間遠(yuǎn)程服務(wù)器沒有響應(yīng)就中斷連接 ,開始下一次嘗試。比如-t 120′表示如果120秒以后遠(yuǎn)程服務(wù)器沒有發(fā)過來數(shù)據(jù),就重新嘗試連接。如果網(wǎng)絡(luò)速度比較快,這個時間可以設(shè)置的短些

3、,相反,可以設(shè)置的長一些,一般最多不超過900,通常也不少于60,一般設(shè)置在120左右比較合適; -w number of seconds:在兩次嘗試之間等待多少秒,比如-w 100′表示兩次嘗試 之間等待100秒; -y on/off:通過/不通過代理服務(wù)器進(jìn)行連接; -q byetes:限制下載文件的總大小最多不能超過多少,比如-q2k表示不能超過2k 字節(jié),-q3m表示最多不能超過3m字節(jié),如果數(shù)字后面什么都不加,就表示是以字節(jié)為單 位,比如-q200′表示最多不能超過200字節(jié); -nd:不下載目錄結(jié)構(gòu),把從服務(wù)器所有指定目錄下載的文件都堆到當(dāng)前目錄里; -x:

4、與-nd設(shè)置剛好相反,創(chuàng)建完整的目錄結(jié)構(gòu),例如wget -x 將在當(dāng)前目錄下創(chuàng)建子目錄,然后按照服務(wù)器 實(shí)際的目錄結(jié)構(gòu)一級一級建下去,直到所有的文件都傳完為止; -nh:不創(chuàng)建以目標(biāo)主機(jī)域名為目錄名的目錄,將目標(biāo)主機(jī)的目錄結(jié)構(gòu)直接下到當(dāng)前目錄下; –http-user=username –http-passwd=password:如果web服務(wù)器需要指定用戶名和口令,用這兩項(xiàng)來設(shè)定; –proxy-user=username –proxy-passwd=password:如果代理服務(wù)器需要輸

5、入用戶名和口令,使用這兩個選項(xiàng) ; -r:在本機(jī)建立服務(wù)器端目錄結(jié)構(gòu); -l depth:下載遠(yuǎn)程服務(wù)器目錄結(jié)構(gòu)的深度,例如-l 5′下載目錄深度小于或者等 于5以內(nèi)的目錄結(jié)構(gòu)或者文件; -m:做站點(diǎn)鏡像時的選項(xiàng),如果你想做一個站點(diǎn)的鏡像,使用這個選項(xiàng),它將自動設(shè)定其他合適的選項(xiàng)以便于站點(diǎn)鏡像; -np:只下載目標(biāo)站點(diǎn)指定目錄及其子目錄的內(nèi)容。這也是一個非常有用的選項(xiàng),我們假設(shè)某個人的個人主頁里面有一個指向這個站點(diǎn)其他人個人主頁的連接,而我們只想下載這個人的個人主頁,如果不設(shè)置這個選項(xiàng),甚至–有可能把整個站點(diǎn)給抓下來,這顯然是我們通常不希望的; ü 如何設(shè)定w

6、get所使用的代理服務(wù)器 wget 可以使用用戶設(shè)置文件.wgetrc來讀取很多設(shè)置,我們這里主要利用這個文件來是 設(shè)置代理服務(wù)器。使用者用什么用戶登錄,那么什么用戶主目錄下的.wgetrc文件就起 作用。例如,root用戶如果想使用.wgetrc來設(shè)置代理服務(wù)器,/root/.wgert就起 作用,下面給出一個.wge trc文件的內(nèi)容,讀者可以參照這個例子來編寫自己的wgetrc文件: http-proxy = 11:8080 ftp-proxy = 11:8080 這兩行的含義是,代理服務(wù)器ip地址為:11,端

7、口號為:80。第一行指定 http協(xié)議所使用的代理服務(wù)器,第二行指定ftp協(xié)議所使用的代理服務(wù)器。 下面就開始實(shí)戰(zhàn)吧! a.使用wget工具 linux所以的主要版本都自帶了wget這個下載工具. bash$ wget http:/place.your.url/here 它還能控制ftp來下載整個web站點(diǎn)的各級目錄,當(dāng)然,如果你不小心,可能會把整個網(wǎng)站以及其他和他做鏈接的網(wǎng)站全部下載下來. bash$ wget -m http:/target.web.site/subdirectory 由于這個工具具有很強(qiáng)的下載能力,所以可以在服務(wù)器上把它用作鏡像網(wǎng)站的工具.讓它按照robots.txt的規(guī)

8、定來執(zhí)行. 有很多參數(shù)用來控制它如何正確地做鏡像,可以限制鏈接的類型和下載文件的類型等等.例如:只下載有聯(lián)系的鏈接并且忽略gif圖片: bash$ wget -m -l –reject=gif http:/target.web.site/subdirectory wget也能夠?qū)崿F(xiàn)斷點(diǎn)續(xù)傳(-c參數(shù)),當(dāng)然,這種操作是需要遠(yuǎn)程服務(wù)器支持的. bash$ wget -c http:/the.url.of/incomplete/file 可以把斷點(diǎn)續(xù)傳和鏡像功能結(jié)合起來,這樣可以在以前斷過多次的情況下繼續(xù)鏡像一個有大量選擇性文件的站點(diǎn).如何自動實(shí)現(xiàn)這個目的我們在后面會討論得更多. 如果

9、你覺得下載時老是斷線會影響你辦公的話,你可以限制wget重試的次數(shù). bash$ wget -t 5 http:/place.your.url/here 這樣重試五次后就放棄了.用-t inf參數(shù)表示永遠(yuǎn)不放棄.不停地重試. b.那對于代理服務(wù)該怎么辦呢? 可以使用http代理的參數(shù)或者在.wgetrc配置文件里指定一個如何通過代理去下載的途徑.但是有這么一個問題,如果通過代理來進(jìn)行斷點(diǎn)續(xù)傳的話可能會有幾次失敗.如果有一次通過代理下載的過程發(fā)生中斷,那么代理服務(wù)器上緩存里保存是那個完整的文件拷貝.所以當(dāng)你用wget -c來下載剩余部分的時候代理服務(wù)器查看它的緩存,并錯誤地認(rèn)為你已經(jīng)下載了整個文

10、件.于是就發(fā)出了錯誤的信號. 這個時候你可以用添加一個特定的請求參數(shù)來促使代理服務(wù)器清除他們的緩存: bash$ wget -c –header=pragma: no-cache http:/place.your.url/here 這個–header參數(shù)能夠以各種數(shù)字,各種方式添加。通過它我們可以更改web服務(wù)器或者代理服務(wù)器的某些屬性。有些站點(diǎn)不提供外部連接的文件服務(wù),只有通過同一個站點(diǎn)上其他的一些頁面時內(nèi)容才會被提交。這個時候你可以用加上referer:參數(shù): bash$ wget –header=referer: http:/coming.from.t

11、his/page http:/surfing.to.this/page 有些特殊的網(wǎng)站只支持某種特定的瀏覽器,這個時候可以用user-agent:參數(shù) bash$ wget –header=user-agent: mozilla/4.0 (compatible; msie 5.0;windows nt; digext) http:/msie.only.url/here c.那我怎么設(shè)定下載時間呢? 如果你需要在你的辦公電腦上通過和其他同事共享的一個連接來下載一些很大的文件,而且你希望你的同事不會因?yàn)榫W(wǎng)絡(luò)速度的減慢而收到影響,那你就應(yīng)該盡量避開高峰時段。當(dāng)然,不需要在辦公室里等到所以

12、人都走掉,也不需要在家里用完晚飯后還惦記著要上網(wǎng)下載一次。 用at來就可以很好的定制工作時間: bash$ at 23:00 warning: commands will be executed using /bin/sh at& wget http:/place.your.url/here at& press ctrl-d 這樣,我們設(shè)定了下載工作在晚上11點(diǎn)進(jìn)行。為了使這個安排能夠正常進(jìn)行,請確 認(rèn)atd這個后臺程序正在運(yùn)行。 d.下載要花很多時間? 當(dāng)你需要下載大量的數(shù)據(jù),而且你又沒有享有足夠的帶寬,這個時候你會經(jīng)常發(fā)現(xiàn)在你安排的下載任務(wù)還沒有完成,一天的工作卻又要開始了。 作為一個好同

13、事,你只能停掉了這些任務(wù),而開始另外的工作。然后你又需要反復(fù)地重復(fù)使用wget -c來完成你的下載。這樣肯定太繁瑣了,所以最好是用crontab來自動執(zhí)行。創(chuàng)建一個純文本文件,叫做crontab.txt,包含下面的內(nèi)容: 0 23 * * 1-5 wget -c -n http:/place.your.url/here 0 6 * * 1-5 killall wget 這個crontab文件指定某些任務(wù)定期地執(zhí)行。前五列聲明是什么時候執(zhí)行這個命令,而每行的剩余部分則告訴crontab執(zhí)行什么內(nèi)容。 前兩列指定了每天一到晚上11點(diǎn)就開始用wget下載,一到早上6點(diǎn)就停止一切wget下載。第三四列

14、的*表示每個月的每一天都執(zhí)行這個任務(wù)。第五列則指定了一個星期的哪幾天來執(zhí)行這個程序。 –1-5′表示從星期一到星期五。 這樣在每個工作日的晚上11點(diǎn),下載工作開始,到了上午的6點(diǎn),任何的wget任務(wù)就被停掉了。你可以用下面的命令來執(zhí)行crontab:bash$ crontab crontab.txt wget的這個-n參數(shù)將會檢查目標(biāo)文件的時間戳,如果匹配了,下載程序就會停止,因?yàn)樗f明整個文件已經(jīng)下載完全了。 用crontab -r可以刪除這個計(jì)劃安排。我已經(jīng)多次采用這種方法,通過共享的電話撥號來下載過很多的iso鏡像文件,還是比較實(shí)用的。 e.如何下載動態(tài)變化的網(wǎng)頁

15、 有些網(wǎng)頁每天都要根據(jù)要求變化好幾次.所以從技術(shù)上講,目標(biāo)不再是一個文件,它沒有文件長度.因此-c這個參數(shù)也就失去了意義. 例如:一個php寫的并且經(jīng)常變動的linux周末新聞網(wǎng)頁: bash$ wget 我辦公室里的網(wǎng)絡(luò)條件經(jīng)常很差,給我的下載帶了很大的麻煩,所以我寫了個簡單的腳本來檢測動態(tài)頁面是否已經(jīng)完全更新了. #!/bin/bash #create it if absent touch bigpage.php3 #check if we got the whole thing while ! grep -qi bigpage.php3 do rm -f bigpage.php3 #do

16、wnload lwn in one big page wget done 這個腳本能夠保證持續(xù)的下載該網(wǎng)頁,直到網(wǎng)頁里面出現(xiàn)了 ,這就表示該文件已經(jīng)完全更新了. f.對于ssl和cookies怎么辦? 如果你要通過ssl來上網(wǎng),那么網(wǎng)站地址應(yīng)該是以https:/來開頭的.在這樣的情況下你就需要另外一種下載工具,叫做curl,它能夠很容易獲得.有些網(wǎng)站迫使網(wǎng)友在瀏覽的時候必須使用cookie.所以你必須從在網(wǎng)站上得到的那個cookie里面得到cookie:這個參數(shù).這樣才 能保證下載的參數(shù)正確.對于lynx和mozilla的cookie的文件格式,用下面的: bash$ cookie=$( gr

17、ep nytimes /.lynx_cookies |awk printf(%s=%s;,$6,$7) ) 就可以構(gòu)造一個請求cookie來下載上的內(nèi)容.當(dāng)然,你要已經(jīng)用這個瀏覽器在該網(wǎng)站上完成注冊. w3m使用了一種不同的,更小巧的cookie文件格式: bash$ cookie=$( grep nytimes /.w3m/cookie |awk printf(%s=%s;,$2,$3) ) 現(xiàn)在就可以用這種方法來下載了: bash$ wget –header=cookie: $cookie 或者用curl工具: bash$ curl -v -b $cookie -o super

18、comp.html g.如何建立地址列表? 到現(xiàn)在為止我們下載的都是單個文件或者是整個網(wǎng)站.有的時候我們需要下載某個網(wǎng)頁上鏈接的大量文件,但沒有必要把它整個網(wǎng)站都鏡像下來.比如說我們想從一個依次排列的100首歌里面下載前20首.注意,這里–accept和–reject參數(shù)是不會起作用的,因?yàn)樗麄冎粚ξ募僮髌鹱饔?所以一定要用lynx -dump參數(shù)來代替. bash$ lynx -dump ftp:/ |grep gz$ |tail -10 |awk print $2 & urllist.txt lynx的輸出結(jié)果可以被各種gnu文本處理工具過慮.在上面的例子里,我們

19、的鏈接地址是以gz結(jié)尾的,并且把最后10個文件地址放到urllist.txt文件里.然后我們可以寫一個簡單的bash腳本來自動下載這個文件里的目標(biāo)文件: bash$ for x in $(cat urllist.txt) & do & wget $x & done 這樣我們就能夠成功下載linux gazette網(wǎng)站(ftp:/ h.擴(kuò)大使用的帶寬 如果你選擇下載一個受帶寬限制的文件,那你的下載會因?yàn)榉?wù)器端的限制而變得很慢.下面這個技巧會大大縮短下載的過程.但這個技巧需要你使用curl并且遠(yuǎn)程服務(wù)器有多個鏡像可以供你下載.例如,假設(shè)你想從下面的三個地址下載mandrake 8.0: url1=/pub/linux/mandrake/iso/mandrake80-inst.iso url2= url3=/linux/mandrake/i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論