宜蘭縣教育支援平台 會員登入 會員註冊 我的i教書

« 上一篇 | 下一篇 »

最近想要把原本 Mirror 在別台的 Scientific Linux 複製到新的 CentOS Mirror 主機,但一直無法成功,使用了 lftp / ncftp 來下載,似乎不支援下載整個目錄,使用 mirrordir 也會遇到 ISO 檔案不能超過 2G 的問題,看來似乎只能使用 rsync 的方式來處理,因為單單一個 Scientific 6 就高達 36x G,重新再 Mirror 一次真是有些累。
後來想到可以使用 wget 的指令來解決這樣的問題,wget 的用法及參數非常繁多,可以先查看一下。

# wget --help
GNU Wget 1.12,非互動式檔案下載工具。
用法: wget [選項]... [URL]...

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

啟動:
  -V,  --version           顯示 Wget 版本並離開
  -h,  --help              印出這段說明文字
  -b,  --background        啟動後進入背景作業
  -e,  --execute=指令      執行 ‘.wgetrc’ 形式的指令

紀錄訊息及輸入檔案:
  -o,  --output-file=檔案    將紀錄訊息寫入<檔案>中
  -a,  --append-output=檔案  將紀錄訊息加入<檔案>末端
  -d,  --debug               印出偵錯訊息
  -q,  --quiet               安靜模式 (不輸出訊息)
  -v,  --verbose             詳細輸出模式 (預設使用這個模式)
  -nv, --non-verbose         關閉詳細輸出模式,但不啟用安靜模式
  -i,  --input-file=FILE     download URLs found in local or external FILE.
  -F,  --force-html          以 HTML 方式處理輸入檔
  -B,  --base=URL            resolves HTML input-file links (-i -F)
                             relative to URL.

下載:
  -t,  --tries=次數              設定重試次數 (0 表示無限)
       --retry-connrefused       即使連線被拒仍然會不斷嘗試
  -O   --output-document=檔案    將資料寫入指定檔案中
  -nc, --no-clobber              不覆寫已經存在的檔案
  -c,  --continue                繼續下載已下載了一部份的檔案
       --progress=方式           選擇下載進度的表示方式
  -N,  --timestamping           除非遠端檔案比較新,否則不下載遠端檔案
  -S,  --server-response         顯示伺服器回應訊息
       --spider                  不下載任何資料
  -T,  --timeout=秒數            指定所有時限為同一數值
       --dns-timeout=秒數        指定 DNS 查找主機的時限
       --connect-timeout=秒數    指定連線時限
       --read-timeout=秒數       指定讀取資料的時限
  -w,  --wait=秒數               每次下載檔案之前等待指定秒數
       --waitretry=秒數          每次重覆嘗試前稍等一段時間 (由 1 秒至指
                                 定秒數不等)
       --random-wait             每次下載之前隨機地指定等待的時間
       --no-proxy                禁止使用代理伺服器
  -Q,  --quota=大小              設定下載資料的限額大小
       --bind-address=位址       使用本機的指定位址 (主機名稱或 IP) 進行連線
       --limit-rate=速率         限制下載速率
       --no-dns-cache            不記憶 DNS 查找主機的資料
       --restrict-file-names=OS  只使用作業系統能夠接受的字元作為檔案字元
       --ignore-case             ignore case when matching files/directories.
  -4,  --inet4-only              只會連接 IPv4 地址
  -6,  --inet6-only              只會連接 IPv6 地址
       --prefer-family=FAMILY    優先採用指定的位址格式,可以是 IPv6、IPv4
                                 或者 none
       --user=用戶               指定 ftp 和 http 用戶名稱
       --password=PASS           指定 ftp 和 http 密碼
       --ask-password            prompt for passwords.
       --no-iri                  turn off IRI support.
       --local-encoding=ENC      use ENC as the local encoding for IRIs.
       --remote-encoding=ENC     use ENC as the default remote encoding.
目錄:
  -nd  --no-directories           不建立目錄
  -x,  --force-directories        強制建立目錄
  -nH, --no-host-directories      不建立含有遠端主機名稱的目錄
       --protocol-directories     在目錄中加上通訊協定名稱
  -P,  --directory-prefix=名稱    儲存檔案前先建立指定名稱的目錄
       --cut-dirs=數目            忽略遠端目錄中指定<數目>的目錄層
HTTP 選項:
       --http-user=用戶        指定 HTTP 用戶名稱
       --http-passwd=密碼      指定 HTTP 密碼
       --no-cache              不使用伺服器中的快取記憶資料
       --default-page=NAME     Change the default page name (normally
                               this is `index.html'.).
  -E,  --adjust-extension      save HTML/CSS documents with proper extensions.
       --ignore-length         忽略 ‘Content-Length’ 標頭欄位
       --header=字串           在連線資料標頭中加入指定字串
       --max-redirect          maximum redirections allowed per page.
       --proxy-user=用戶       設定代理伺服器用戶名稱
       --proxy-password=密碼   設定代理伺服器密碼
       --referer=URL           在 HTTP 請求中包括 ‘Referer: URL’ 標頭
       --save-headers          將 HTTP 連線資料標頭存檔
  -U,  --user-agent=AGENT      宣稱為 AGENT 而不是 Wget/VERSION
       --no-http-keep-alive    不使用 HTTP keep-alive (持久性連線)
       --no-cookies            不使用 cookie
       --load-cookies=檔案     程式啟動時由指定檔案載入 cookie
       --save-cookies=檔案     程式結束後將 cookie 儲存至指定檔案
       --keep-session-cookies  會載入和儲存暫時性的 cookie
       --post-data=字串        使用 POST 方式送出字串
       --post-file=檔案        使用 POST 方式送出檔案內容
       --content-disposition   honor the Content-Disposition header when
                               choosing local file names (EXPERIMENTAL).
       --auth-no-challenge     send Basic HTTP authentication information
                               without first waiting for the server's
                               challenge.

HTTPS (SSL/TLS) 選項:
       --secure-protocol=PR     選擇安全通訊協定,可以使用 auto, SSLv2,
                                SSLv3 或 TLSv1
       --no-check-certificate   不檢驗伺服器的憑證
       --certificate=檔案       指定用戶端的憑證檔案名稱
       --certificate-type=類型  用戶端憑證的類型,可以是 PEM 或 DER
       --private-key=檔案       指定私鑰檔案
       --private-key-type=類型  私鑰的類型,可以是 PEM 或 DER
       --ca-certificate=檔案    載有憑證管理中心 (CA) 簽章的檔案
       --ca-directory=目錄      載有憑證管理中心 (CA) 簽章的目錄
       --random-file=檔案       作為 SSL 隨機數產生程序 (PRNG) 的來源數據檔案
       --egd-file=檔案          產生隨機數據的 EGD socket 檔案名稱

FTP 選項:
       --ftp-user=用戶         指定 FTP 用戶名稱
       --ftp-password=密碼     設定 FTP 密碼
       --no-remove-listing     不刪除 ‘.listing’ 檔案
       --no-glob               不展開有萬用字元的 FTP 檔名
       --no-passive-ftp        不使用「被動」傳輸模式
       --retr-symlinks         在遞迴模式中,下載鏈結指示的目標檔案
                               (不包括目錄)

遞迴下載:
  -r,  --recursive          遞迴下載
  -l,  --level=數字         最大搜尋深度 (inf 或 0 表示無限)
       --delete-after       刪除下載後的檔案
  -k,  --convert-links      make links in downloaded HTML or CSS point to
                            local files.
  -K,  --backup-converted   將檔案 X 轉換前先備份為 X.orig
  -m,  --mirror             相等於 -N -r -l inf --no-remove-listing 選項
  -p,  --page-requisites    下載所有顯示網頁所需的檔案,例如圖片等
       --strict-comments    用嚴格方式 (SGML) 處理 HTML 注釋。

遞迴下載時有關接受/拒絕的選項:
  -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                 不進入上層的目錄

請將錯誤報告或建議寄給 <bug-wget@gnu.org>。

列紅色的部分是個人比較可能常用的參數。

# wget -m ftp://140.111.74.3/pub/Linux/scientific

我覺得 Linux 很吸引人的地方就是一個小小的指令,就可以解決困擾多時的問題,其實 Windows 平台也有 wget 可以使用,不過要另外安裝。




 
 
 
用LINE傳送

發表迴響

 暱稱 (必填)

 悄悄話

 標題

 個人網頁

 電子郵件

authimage 
 認證碼 (必填)