Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> Linux

Hướng dẫn tải file từ dòng lệnh Linux/Windows/macOS với wget

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ọnChức năng
-O filenameĐặt tên file đầu ra (khác tên gốc)
-cResume tải bị ngắt (cần server hỗ trợ Range)
-qQuiet (không output)
--show-progressHiện thanh tiến độ (mặc định mới)
--limit-rate=1MGiới hạn băng thông (1MB/s)
-t 10Số lần retry (mặc định 20)
--timeout=30Timeout kết nối (giây)
--user=u --password=pHTTP Basic Auth
--ask-passwordNhập pass tương tác
--no-check-certificateBỏ 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ểmwgetcurl
Đệ quy/MirrorHỗ trợ gốc (--mirror)Không (cần script)
Resume-c (đơn giản)-C - (cần biết offset)
ProtocolHTTP/HTTPS/FTPHTTP/HTTPS/FTP/SFTP/SCP/SMTP/POP3/IMAP...
LibraryCLI onlylibcurl (nhúng app)
ScriptingTốt cho mirrorTốt cho API, request tùy biến

man wget – Tài liệu đầy đủ

man wget