wget和curl下載JDK

 

  • 3638

有時候咱們須要在服務器上安裝Oracle JDK,這時候咱們發現直接複製網頁上面的地址是不能下載的html

如下載jdk-8u101-linux-i586.tar.gz爲例,右鍵查看到的地址爲http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz,可是這個地址並不能直接下載java

經過瀏覽器開發工具觀察咱們發現,下載時通過了3次重定向纔拿到最終的下載地址,而且Cookies中有個參數必須帶上linux

將這幾個302跳轉複製成curl觀察一下centos

第一次重定向瀏覽器

 

[plain] view plain copy服務器

  1. curl "http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz" -H "Host: download.oracle.com" -H "User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3" --compressed -H "Referer: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" -H "Cookie: s_nr=1472257078143; ELOQUA=GUID=e0964a7736384dc98085509e60e04539; s_cc=true; gpw_e24=http"%"3A"%"2F"%"2Fwww.oracle.com"%"2Ftechnetwork"%"2Fjava"%"2Fjavase"%"2Fdownloads"%"2Fjdk8-downloads-2133151.html; s_sq="%"5B"%"5BB"%"5D"%"5D; oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive"  

第二次重定向cookie

 

 

[plain] view plain copyoracle

  1. curl "https://edelivery.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz" -H "Host: edelivery.oracle.com" -H "User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3" --compressed -H "Referer: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" -H "Cookie: ARU_LANG=US; s_nr=1472257078143; ELOQUA=GUID=e0964a7736384dc98085509e60e04539; s_cc=true; gpw_e24=http"%"3A"%"2F"%"2Fwww.oracle.com"%"2Ftechnetwork"%"2Fjava"%"2Fjavase"%"2Fdownloads"%"2Fjdk8-downloads-2133151.html; s_sq="%"5B"%"5BB"%"5D"%"5D; oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive"  

第三次重定向app

 

 

[plain] view plain copycurl

  1. curl "https://edelivery.oracle.com/osdc-otn/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz" -H "Host: edelivery.oracle.com" -H "User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3" --compressed -H "Referer: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" -H "Cookie: ARU_LANG=US; s_nr=1472257078143; ELOQUA=GUID=e0964a7736384dc98085509e60e04539; s_cc=true; gpw_e24=http"%"3A"%"2F"%"2Fwww.oracle.com"%"2Ftechnetwork"%"2Fjava"%"2Fjavase"%"2Fdownloads"%"2Fjdk8-downloads-2133151.html; s_sq="%"5B"%"5BB"%"5D"%"5D; oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive"  

真實下載

 

 

[plain] view plain copy

  1. curl "http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz?AuthParam=1472300350_2a4acf9c53c18478db4839cbf7ec69c6" -H "Host: download.oracle.com" -H "User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3" --compressed -H "Referer: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html" -H "Cookie: s_nr=1472257078143; ELOQUA=GUID=e0964a7736384dc98085509e60e04539; s_cc=true; gpw_e24=http"%"3A"%"2F"%"2Fwww.oracle.com"%"2Ftechnetwork"%"2Fjava"%"2Fjavase"%"2Fdownloads"%"2Fjdk8-downloads-2133151.html; s_sq="%"5B"%"5BB"%"5D"%"5D; oraclelicense=accept-securebackup-cookie" -H "Connection: keep-alive"  

其中真實下載地址中的AuthParam每次都會變化。

 

curl要經過-O參數才能下載文件,不然只是將內容輸出到控制檯。

因此curl方式的下載命令爲

 

[plain] view plain copy

  1. curl -L "http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz" -H "Cookie: oraclelicense=accept-securebackup-cookie"  -H "Connection: keep-alive" -O  

其中-L參數可以追蹤重定向的地址,不加-L只能返回302的結果,cookies中有用的內容是贊成協議那一部分,Connection: keep-alive這句要加上,不然下載速度會變成蝸牛

 

執行結果以下

 

[plain] view plain copy

  1. [root@mycentos ~]# curl -L "http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz" -H "Cookie: oraclelicense=accept-securebackup-cookie"  -H "Connection: keep-alive" -O  
  2.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  
  3.                                  Dload  Upload   Total   Spent    Left  Speed  
  4.   8  174M    8 14.1M    0     0   404k      0  0:07:23  0:00:35  0:06:48  463k  


一樣的wget方式的下載命令爲,wget的好處能夠自動重定向,不用咱們操心

 

 

[plain] view plain copy

  1. wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz  

其中 --no-check-certificate表示不校驗SSL證書,由於中間的兩個302會訪問https,會涉及到證書的問題,不校驗能快一點,影響不大,另外一個--no-cookies表示不使用cookies,固然首次在header裏指定的會帶上,後面重定向的就不帶了,這個影響也不大,能夠不加。

 

 

[plain] view plain copy

  1. [root@mycentos downloads]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz  
  2. --2016-08-27 20:47:52--  http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz  
  3. Resolving download.oracle.com... 206.160.170.51, 206.160.170.9  
  4. Connecting to download.oracle.com|206.160.170.51|:80... connected.  
  5. HTTP request sent, awaiting response... 302 Moved Temporarily  
  6. Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz [following]  
  7. --2016-08-27 20:47:52--  https://edelivery.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz  
  8. Resolving edelivery.oracle.com... 60.254.134.143  
  9. Connecting to edelivery.oracle.com|60.254.134.143|:443... connected.  
  10. HTTP request sent, awaiting response... 302 Moved Temporarily  
  11. Location: https://edelivery.oracle.com/osdc-otn/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz [following]  
  12. --2016-08-27 20:47:53--  https://edelivery.oracle.com/osdc-otn/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz  
  13. Reusing existing connection to edelivery.oracle.com:443.  
  14. HTTP request sent, awaiting response... 302 Moved Temporarily  
  15. Location: http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz?AuthParam=1472302193_c5af865490ac9f21f2605a3abee94745 [following]  
  16. --2016-08-27 20:47:53--  http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-i586.tar.gz?AuthParam=1472302193_c5af865490ac9f21f2605a3abee94745  
  17. Connecting to download.oracle.com|206.160.170.51|:80... connected.  
  18. HTTP request sent, awaiting response... 200 OK  
  19. Length: 183456778 (175M) [application/x-gzip]  
  20. Saving to: 「jdk-8u101-linux-i586.tar.gz.1」  
  21.   
  22.  2% [==>                                   ] 4,740,512    863K/s  eta 4m 40s  
相關文章
相關標籤/搜索