wget(Web Get)是非互動式網路下載工具,支援 HTTP/HTTPS/FTP、斷點續傳、遞歸鏡像、頻寬限制、代理穿透,是伺服器端自動化下載、備份、鏡像的首選。本文詳解核心參數、五大實戰場景與腳本整合範例。
| 參數 | 功能 | 典型場景 |
|---|---|---|
-c | 斷點續傳 | 大檔案、不穩定網路 |
-b | 背景下載 | 長時間任務、SSH 斷線不中斷 |
-q | 靜默模式 | 腳本整合、cron 任務 |
-O FILE | 指定輸出檔名 | URL 無檔名/需重命名 |
-P DIR | 指定儲存目錄 | 集中管理下載檔案 |
--limit-rate=RATE | 限速 | 避免佔滿頻寬 |
-r / -l DEPTH | 遞歸下載/深度限制 | 鏡像網站、下載目錄樹 |
-np | 不追蹤父目錄 | 限制在指定目錄下 |
-A/-R LIST | 接受/拒絕檔案型態 | 只下載 pdf、圖片等 |
--user=USER --password=PASS | HTTP/FTP 認證 | 私有資源下載 |
--proxy=on/off | 啟用/停用代理 | 內網環境穿透 |
--no-check-certificate | 忽略 SSL 憑證驗證 | 自簽憑證測試環境 |
wget -c https://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.26.bz2
# 網路中斷後重跑同指令,自動從中斷處續傳
wget -r -l 3 -np -k -p -E -U "Mozilla/5.0" \
-P /backup/www.example.com \
https://www.example.com/docs/
# -r 遞歸 -l 3 三層深度 -np 不上溯父目錄
# -k 轉換連結為相對路徑 -p 下載頁面依賴資源
# -E 修正 HTML 副檔名 -U 偽裝 User-Agent
wget -r -l 2 -A "*.pdf,*.doc,*.xls" -P /downloads \
https://intranet.company.com/reports/
wget -bqc --limit-rate=1m -o /var/log/wget_bigfile.log \
-O /data/bigfile.iso \
https://mirror.site/bigfile.iso
# -b 背景 -q 靜默 -c 續傳 -o 日誌檔 -O 指定輸出名
wget -m --ftp-user=backup --ftp-password=xxx \
ftp://backup.server.com/daily/
# -m 鏡像模式 = -r -l inf -N -nr
#!/bin/bash
# daily_download.sh - 每日定時下載報表
URL="https://intranet/reports/daily_$(date +%F).pdf"
DEST="/data/reports"
LOG="/var/log/daily_download.log"
wget -qc --timeout=30 --tries=3 \
-P "$DEST" \
-o "$LOG" \
"$URL"
if [ $? -eq 0 ]; then
echo "$(date) DOWNLOAD OK" >> "$LOG"
else
echo "$(date) DOWNLOAD FAILED" >> "$LOG"
# 可接發送告警郵件/Slack
fi
加入 crontab:0 2 * * * /scripts/daily_download.sh(每天 02:00 執行)。
curl / aria2curl:支援更豐富協定、雙向互動、API 測試首選。aria2:多埠多線程、金屬鏈、BitTorrent/Metalink 支援,大檔案下載極速王者。wget 以「堅韌、可腳本化、無需互動」三大特質,成為 Linux 伺服器端下載的基石。掌握 -c 續傳、-r 遞歸、-b 背景、-o 日誌、-A 過濾五大核心參數組合,即能應對 95% 的自動化下載需求。搭配 cron、systemd timer、監控告警,構建「下載-驗證-入庫-通知」全自動化管線。