Hướng dẫn sử dụng wget – công cụ tải file dòng lệnh mạnh mẽ, hỗ trợ resume, đệ quy, mirror, authentication, bandwidth limit – có sẵn Linux, port sang Windows/macOS.
Cài đặt
- Linux: Thường có sẵn. Không có:
sudo apt/dnf/pacman install wget. - Windows: Tải binary từ eternallybored.org hoặc
choco install wget/scoop install wget. - macOS:
brew install wget(mặc định cócurl).
Tải file đơn giản
# wget https://example.com/file.zip
Tùy chọn quan trọng
| Tùy chọn | Chức năng |
|---|---|
-O filename | Đặt tên file đầu ra (khác tên gốc) |
-c | Resume tải bị ngắt (cần server hỗ trợ Range) |
-q | Quiet (không output) |
--show-progress | Hiện thanh tiến độ (mặc định mới) |
--limit-rate=1M | Giới hạn băng thông (1MB/s) |
-t 10 | Số lần retry (mặc định 20) |
--timeout=30 | Timeout kết nối (giây) |
--user=u --password=p | HTTP Basic Auth |
--ask-password | Nhập pass tương tác |
--no-check-certificate | Bỏ qua kiểm tra SSL (không an toàn) |
Tải đệ quy (Recursive) – Mirror website
# Tải 1 cấp (trang chủ + link trực tiếp)
wget -r -l 1 https://example.com/
# Mirror toàn bộ site (backup)
wget --mirror -p --convert-links -P ./backup https://example.com/
# --mirror = -r -l inf -N
# -p: Tải tài nguyên nhúng (css, js, img)
# --convert-links: Sửa link cho xem offline
# -P: Thư mục đích
Tải theo pattern (chỉ file .jpg, .pdf...)
# Chỉ tải file .jpg từ site
wget -r -l1 --no-parent -A.jpg https://example.com/gallery/
# -A.jpg: Accept chỉ .jpg
# -R "*.png": Reject .png
# --no-parent: Không leo lên thư mục cha
Tự động backup website hàng ngày (cron + script)
#!/bin/bash
# File: /usr/local/bin/website_backup.sh
YEAR=$(date +%Y)
MONTH=$(date +%m)
DAY=$(date +%d)
BACKUP_ROOT="/home/backup"
WEBSITE_URL="https://example.com"
mkdir -p "$BACKUP_ROOT/$YEAR/$MONTH/$DAY"
cd "$BACKUP_ROOT/$YEAR/$MONTH/$DAY"
wget --mirror -p --convert-links --no-parent "$WEBSITE_URL" 2>&1 | tee wget.log
Cấp quyền: chmod +x /usr/local/bin/website_backup.sh
Thêm cron (chạy 2h sáng):
# crontab -e
0 2 * * * /usr/local/bin/website_backup.sh
wget vs curl
| Đặc điểm | wget | curl |
|---|---|---|
| Đệ quy/Mirror | Hỗ trợ gốc (--mirror) | Không (cần script) |
| Resume | -c (đơn giản) | -C - (cần biết offset) |
| Protocol | HTTP/HTTPS/FTP | HTTP/HTTPS/FTP/SFTP/SCP/SMTP/POP3/IMAP... |
| Library | CLI only | libcurl (nhúng app) |
| Scripting | Tốt cho mirror | Tốt cho API, request tùy biến |
man wget – Tài liệu đầy đủ
man wget