Lệnh Wget Trong Linux Là Gì? Cách Sử Dụng & Ví Dụ Thực Tế 2026
Lệnh wget trên Linux là công cụ dòng lệnh tiêu chuẩn không thể thiếu đối với bất kỳ ai đang quản trị máy chủ ảo hoặc phát triển phần mềm trên nền tảng mã nguồn mở. Khi làm việc với máy chủ từ xa không có giao diện đồ họa tại ThueVPSGiaRe.vn, việc nắm vững […]
Lệnh wget trên Linux là công cụ dòng lệnh tiêu chuẩn không thể thiếu đối với bất kỳ ai đang quản trị máy chủ ảo hoặc phát triển phần mềm trên nền tảng mã nguồn mở. Khi làm việc với máy chủ từ xa không có giao diện đồ họa tại ThueVPSGiaRe.vn, việc nắm vững cách tải file, duy trì tải ngầm và xử lý sự cố kết nối sẽ giúp bạn làm chủ hệ sinh thái Linux một cách hiệu quả, an toàn và chuyên nghiệp nhất.
1. Lệnh Wget trên Linux là gì? Cơ chế hoạt động của tiện ích GNU Wget
Lệnh wget trên Linux là một tiện ích dòng lệnh mã nguồn mở thuộc dự án GNU, chuyên dùng để tải tệp tin từ Internet về hệ thống thông qua các giao thức mạng phổ biến gồm HTTP, HTTPS và FTP/FTPS. Wget hoạt động độc lập không cần giao diện đồ họa (GUI), cho phép tải dữ liệu tự động ngay cả khi người dùng đăng xuất khỏi phiên làm việc terminal.

Tên gọi Wget là sự kết hợp giữa World Wide Web và từ khóa Get. Trong môi trường quản trị hệ thống máy chủ, wget là một trong các lệnh Linux cơ bản thiết yếu nhất mà bất kỳ kỹ sư DevOps, quản trị viên web hay lập trình viên nào cũng phải sử dụng mỗi ngày. Khi bạn quản lý một VPS Linux thuần giao diện dòng lệnh (CLI), wget chính là trình duyệt thu nhỏ đảm nhận toàn bộ việc truyền tải tài nguyên số về máy chủ.
Tính năng tải không tương tác (Non-interactive)
Điểm ưu việt lớn nhất của GNU Wget là khả năng hoạt động không tương tác (non-interactive). Điều này đồng nghĩa với việc sau khi lệnh được khởi chạy, nó có thể tự vận hành dưới nền (background) mà không đòi hỏi bất kỳ sự can thiệp nào từ con người qua bàn phím.
Nếu bạn ngắt phiên kết nối SSH hoặc đường truyền mạng từ máy cá nhân đến máy chủ bị đứt quãng đột ngột, tiến trình tải của Wget trên VPS vẫn duy trì đều đặn cho đến khi hoàn tất 100% dữ liệu.
Khả năng tự động thử lại và khôi phục (Resume)
Wget được thiết kế chuyên biệt để hoạt động bền bỉ trên các đường truyền mạng không ổn định hoặc băng thông chập chờn. Khi xảy ra tình trạng mất gói tin, nghẽn mạng hoặc server gốc ngắt kết nối giữa chừng, Wget sẽ tự động gửi yêu cầu kết nối lại theo số lần cấu hình định trước.
Khi kết hợp với cờ tham số resume, Wget sẽ kiểm tra độ dài byte dữ liệu đã ghi xuống đĩa và tiếp tục tải từ byte tiếp theo, loại bỏ hoàn toàn việc phải tải lại từ đầu đối với các gói dữ liệu ISO hoặc file backup nặng hàng chục Gigabyte.
2. Cách cài đặt lệnh Wget trên Ubuntu, Debian, CentOS và AlmaLinux
Mặc dù Wget là tiện ích phổ biến, nhiều bản cài đặt Linux Server tối giản (Minimal Installation) hoặc các image container Docker thường lược bỏ gói phần mềm này nhằm tiết kiệm dung lượng đĩa cứng. Khi gõ lệnh tải tệp mà xuất hiện thông báo lỗi bash: wget: command not found, bạn cần tiến hành cài đặt tiện ích theo trình quản lý gói tương ứng của bản phân phối Linux đang sử dụng.
Cài đặt Wget trên hệ điều hành Ubuntu và Debian
Trên các hệ điều hành thuộc họ Debian/Ubuntu, bạn sử dụng trình quản lý gói apt để cập nhật chỉ mục kho lưu trữ và cài đặt gói wget bằng quyền root hoặc sudo:
# Cập nhật danh sách gói phần mềm sudo apt update # Tiến hành cài đặt tiện ích wget sudo apt install wget -y
Cài đặt Wget trên CentOS, RHEL, AlmaLinux và Rocky Linux
Đối với dòng hệ điều hành họ Red Hat Enterprise Linux (RHEL), bạn sử dụng trình quản lý gói yum (đối với CentOS 7) hoặc dnf (đối với AlmaLinux, Rocky Linux, CentOS 8/9 Stream):
# Cài đặt trên AlmaLinux / Rocky Linux / RHEL 8, 9 sudo dnf install wget -y # Cài đặt trên CentOS 7 cũ sudo yum install wget -y
Kiểm tra phiên bản Wget sau khi cài đặt
Sau khi tiến trình cài đặt hoàn tất, bạn có thể kiểm tra xem chương trình đã sẵn sàng hoạt động hay chưa và xem phiên bản hiện tại bằng lệnh:
wget --version
Hệ thống sẽ trả về thông tin phiên bản GNU Wget cùng danh sách các thư viện hỗ trợ như OpenSSL (hoặc GnuTLS), IPv6, HTTP/2 và đường dẫn tệp cấu hình mặc định (thường tại /etc/wgetrc). Quá trình này rất nhanh và chỉ mất chưa đầy một phút trong quy trình thiết lập ban đầu theo hướng dẫn sử dụng VPS.
3. Cú pháp và hướng dẫn lệnh Wget trên Linux từ cơ bản đến nâng cao
3.1. Tải tệp tin đơn giản về thư mục hiện hành
Ở dạng mặc định, bạn chỉ cần gõ lệnh kèm URL nguồn. File tải về sẽ được đặt ngay tại thư mục làm việc hiện tại của bạn:
wget https://releases.ubuntu.com/noble/ubuntu-24.04.4-live-server-amd64.iso
Trong lúc tải, màn hình dòng lệnh sẽ hiển thị chi tiết tiến trình bao gồm: tên tệp, dung lượng, tốc độ tải hiện thời cùng thời gian ước tính còn lại.
wget sẽ không ghi đè lên dữ liệu cũ mà tự động thêm hậu tố thứ tự dạng .N (ví dụ .1, .2) vào tên file mới tải.Nếu bạn muốn quá trình tải diễn ra im lặng, không in bất kỳ thông tin nào ra màn hình terminal, hãy sử dụng tùy chọn -q (quiet mode):
wget -q https://example.com/file.tar.gz
3.2. Đặt tên mới cho tệp tin khi lưu (-O)
Thông thường, wget lấy luôn tên tệp từ đường dẫn URL. Trong trường hợp bạn muốn chỉ định một tên gọi khác ngắn gọn hoặc phù hợp hơn, hãy dùng cờ -O (chữ O viết hoa):
wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/refs/heads/master.zip
Lệnh trên sẽ đổi tên file tải từ GitHub thành latest-hugo.zip thay vì giữ tên mặc định là master.zip.
3.3. Lưu file vào một thư mục định sẵn (-P)
Để lưu tệp tải về vào một phân vùng hoặc đường dẫn khác mà không cần phải chuyển thư mục làm việc (cd), bạn sử dụng tham số -P (chữ P viết hoa):
wget -P /mnt/iso https://releases.ubuntu.com/noble/ubuntu-24.04.4-live-server-amd64.iso
3.4. Tiếp tục tiến trình tải bị đứt quãng (-c)
Khi tải các file dung lượng lớn trên VPS, việc rớt mạng giữa chừng là điều khó tránh khỏi. Tùy chọn -c (continue) sẽ yêu cầu wget gửi tiêu đề Range lên máy chủ để chỉ tải tiếp các byte dữ liệu còn thiếu thay vì tải lại từ đầu:
wget -c https://releases.ubuntu.com/noble/ubuntu-24.04.4-live-server-amd64.iso
Lưu ý: Tính năng này yêu cầu máy chủ đích phải hỗ trợ Range Request. Nếu phía server không hỗ trợ, wget buộc phải tải lại tệp từ đầu.
Bạn có thể kết hợp thêm tham số --tries để chỉ định số lần tự động thử kết nối lại nếu gặp sự cố:
wget -c --tries=10 https://releases.ubuntu.com/noble/ubuntu-24.04.4-live-server-amd64.iso
3.5. Kiểm soát và giới hạn tốc độ tải (–limit-rate)
Nếu máy chủ đang vận hành các dịch vụ trực tiếp (production traffic), việc tải một file lớn có thể ngốn sạch băng thông mạng. Để đảm bảo hệ thống không bị nghẽn, bạn có thể áp đặt mức trần tốc độ bằng cờ --limit-rate:
wget --limit-rate=2m https://example.com/large-file.tar.gz
Các đơn vị tốc độ được quy ước:
k: Kilobytes/giâym: Megabytes/giâyg: Gigabytes/giây
3.6. Tải nhiều tệp cùng lúc từ danh sách có sẵn (-i)
Thay vì nhập từng dòng lệnh đơn lẻ, bạn có thể lập một tệp tin văn bản (chẳng hạn urls.txt), trong đó mỗi đường dẫn nằm trên một dòng:
https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso
https://www.debian.org/distrib/netinst
https://download.fedoraproject.org/pub/fedora/linux/releases/41/Server/x86_64/iso/Fedora-Server-dvd-x86_64-41-1.4.iso
Sau đó, gọi file danh sách thông qua tham số -i:
wget -i urls.txt
wget sẽ tự động tải tuần tự từng tài nguyên cho đến khi hết danh sách. Trường hợp bạn muốn truyền danh sách liên kết từ dòng lệnh chuẩn (stdin), hãy dùng cú pháp wget -i -.
3.7. Đẩy tiến trình tải chạy ngầm dưới nền (-b)
Tùy chọn -b (background) cho phép tách tiến trình tải khỏi phiên làm việc dòng lệnh, trả lại terminal ngay lập tức để bạn tiếp tục các thao tác khác:
wget -b https://releases.ubuntu.com/noble/ubuntu-24.04.4-live-server-amd64.iso
Mọi thông tin ghi nhận (log) trong lúc tải ngầm sẽ được chuyển vào tệp wget-log ở thư mục hiện hành. Để theo dõi tiến độ thời gian thực, bạn thực thi lệnh:
tail -f wget-log
3.8. Tải đệ quy và tạo bản sao (Mirror) website
Để tải toàn bộ nội dung của một trang web phục vụ nhu cầu tra cứu offline, bạn có thể phối hợp bộ ba cờ lệnh -m, -k và -p:
wget -m -k -p https://example.com
Ý nghĩa từng tham số:
-m(Mirror): Bật cơ chế tải đệ quy toàn diện, duy trì mốc thời gian gốc của file (timestamp) và không giới hạn độ sâu thư mục.-k(Convert links): Biên tập lại toàn bộ các đường link trong trang web đã tải về để chúng liên kết chính xác với các tệp cục bộ trên máy.-p(Page requisites): Kéo theo đầy đủ tất cả các thành phần phụ trợ cần thiết để hiển thị giao diện trọn vẹn (bao gồm hình ảnh, mã CSS, file JavaScript).
Một số tùy chỉnh mở rộng khi tải đệ quy:
Giới hạn độ sâu liên kết: Dùng cờ -l (ví dụ chỉ quét sâu 2 cấp từ trang chủ):
wget -r -l 2 https://example.com
Chỉ tải các định dạng tệp mong muốn (ví dụ lấy ảnh):
wget -r --accept=jpg,png,gif https://example.com/gallery/
Loại bỏ các tệp không cần thiết (ví dụ bỏ qua video nặng):
wget -r --reject=mp4,avi https://example.com/media/
4. Xác thực người dùng (Authentication)
4.1. Xác thực HTTP Basic Auth
Nếu tài nguyên nằm sau lớp bảo vệ đăng nhập cơ bản của máy chủ web, bạn truyền thông tin tài khoản qua hai cờ --user và --password:
wget --user=admin --password=secret https://example.com/protected/file.tar.gz
Đối với các dịch vụ API bảo mật bằng Bearer token, bạn có thể truyền mã token trực tiếp vào tiêu đề request:
wget --header="Authorization: Bearer YOUR_TOKEN" https://api.example.com/data.json
4.2. Xác thực FTP Server
Tải dữ liệu từ các máy chủ FTP yêu cầu thông tin đăng nhập:
wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
shell history). Để an toàn hơn, hãy cân nhắc sử dụng các biến môi trường riêng, tệp tạm thời được giới hạn quyền đọc, hoặc dùng cờ --ask-password để nhập mật khẩu thủ công khi có yêu cầu.5. Các tùy chọn mở rộng hữu ích khác
5.1. Kiểm tra URL khả dụng (–spider)
Cờ --spider hoạt động tương tự như một công cụ thăm dò: nó chỉ kiểm tra tính hợp lệ và sự tồn tại của đường dẫn mà không kéo nội dung về máy:
wget --spider https://example.com/file.tar.gz
Nếu liên kết hoạt động tốt, màn hình trả về phản hồi 200 OK. Nếu tệp không tồn tại, bạn sẽ nhận được mã lỗi HTTP tương ứng. Lệnh này rất hữu ích để kiểm thử link trong các script tự động.
5.2. Chỉ tải về khi có phiên bản mới hơn (-N)
Tính năng so khớp timestamp (-N) cho phép so sánh thời gian cập nhật của tệp tin trên máy chủ với tệp sẵn có ở máy cục bộ. Nếu phía server có bản mới hơn thì wget mới tiến hành tải xuống:
wget -N https://example.com/data.csv
5.3. Bổ sung Custom HTTP Header
Để gắn thêm các tiêu đề tùy chỉnh vào yêu cầu gửi đi, bạn sử dụng --header. Tùy chọn này có thể gọi lặp lại nhiều lần nếu cần gửi nhiều header cùng lúc:
wget --header="Accept: application/json" https://api.example.com/endpoint
5.4. Thiết lập số lần thử lại và thời gian chờ (Retry & Timeout)
Mặc định wget sẽ cố gắng kết nối lại tối đa 20 lần nếu gặp lỗi đường truyền. Bạn có thể chủ động điều chỉnh giới hạn này cùng thời gian chờ bằng các tham số:
wget --tries=5 --timeout=30 https://example.com/file.tar.gz
--tries=N: Đặt số lần thử kết nối lại tối đa là N lần.--timeout=N: Đặt ngưỡng thời gian chờ (cho phân giải DNS, bắt tay kết nối và đọc dữ liệu) là N giây.
Nếu muốn lệnh tiếp tục thử lại ngay cả khi máy chủ từ chối kết nối, hãy bổ sung thêm cờ --retry-connrefused:
wget --tries=5 --retry-connrefused https://example.com/file.tar.gz
5.5. Tùy biến User-Agent (-U)
Nhiều máy chủ thiết lập chặn các request mang định danh mặc định của wget. Để giả lập một trình duyệt web thông thường (như Firefox), bạn dùng cờ -U:
wget -U "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" https://example.com/
5.6. Bỏ qua bước kiểm tra chứng chỉ SSL (–no-check-certificate)
Nếu máy chủ đích sử dụng chứng chỉ SSL tự ký (self-signed) hoặc chứng chỉ đã hết hạn hợp lệ, bạn có thể tắt quy trình xác thực chứng chỉ bằng cờ:
wget --no-check-certificate https://self-signed.example.com/file.tar.gz
5.7. Quản lý và làm việc với Cookie
Lưu cookie nhận được từ máy chủ vào file:
wget --save-cookies cookies.txt https://example.com/login
Lưu giữ cả cookie phiên làm việc (session cookies – loại không có hạn cố định):
wget --save-cookies cookies.txt --keep-session-cookies https://example.com/login
Sử dụng cookie đã lưu cho các lần tải tiếp theo:
wget --load-cookies cookies.txt https://example.com/protected/file.tar.gz
5.8. Định tuyến thông qua Proxy
Bạn có thể cấu hình máy chủ ủy danh (proxy) trực tiếp trong câu lệnh thông qua tùy chọn -e:
wget -e use_proxy=yes -e https_proxy=http://proxy.example.com:8080 https://example.com/file.tar.gz
Hoặc thiết lập biến môi trường hệ thống trước khi chạy wget:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
wget https://example.com/file.tar.gz
Nếu proxy yêu cầu tài khoản xác thực, hãy khai báo thêm thông tin:
wget --proxy-user=USER --proxy-password=PASS https://example.com/file.tar.gz
5.9. Chuyển tiếp luồng dữ liệu (Pipe output) sang lệnh khác
Bằng cách sử dụng -O -, dữ liệu tải về sẽ được đẩy thẳng ra đầu ra chuẩn (stdout) thay vì ghi vào ổ cứng, cho phép bạn pipe ngay sang các công cụ xử lý tiếp theo:
wget -q -O - "https://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www
Lệnh trên tải bộ cài WordPress mới nhất và giải nén trực tiếp vào thư mục /var/www mà không tạo tệp lưu trung gian.
5.10. Tiếp nhận tên file do máy chủ đề xuất (–content-disposition)
Trong nhiều liên kết tải động, server sẽ trả về tiêu đề Content-Disposition để chỉ định tên tệp chính xác. Để wget nhận diện và đặt tên theo chỉ dẫn này thay vì lấy chuỗi URL:
wget --content-disposition https://example.com/download?file=report
6. So sánh lệnh Wget và cURL: Khi nào nên sử dụng công cụ nào?
Rất nhiều người mới sử dụng Linux thường nhầm lẫn giữa hai công cụ wget và curl, bởi cả hai đều được cài mặc định trên nhiều hệ thống và đều dùng để tải dữ liệu mạng thông qua dòng lệnh. Tuy nhiên, kiến trúc cốt lõi và mục đích thiết kế của hai công cụ này hoàn toàn khác nhau.
Dưới đây là bảng so sánh cơ bản giữa lệnh Wget và cURL:
| Tiêu chí so sánh | Tiện ích Wget (GNU Wget) | Tiện ích cURL (Client URL) | Khuyến nghị thực tế |
|---|---|---|---|
| Mục đích cốt lõi | Chuyên biệt tải file, tự động tải ngầm và sao lưu website | Truyền dữ liệu đa giao thức hai chiều (Gửi và Nhận) | Dùng Wget để kéo file, dùng cURL để test API |
| Đầu ra mặc định | Tự động lưu luồng dữ liệu thành tệp tin trên ổ đĩa | In trực tiếp nội dung phản hồi ra màn hình terminal (stdout) | Wget tiện hơn khi cần lưu file trực tiếp |
| Hỗ trợ đệ quy | Có sẵn tính năng quét đệ quy (Recursive) qua cờ -r |
Không hỗ trợ tải đệ quy toàn thư mục/web | Bắt buộc chọn Wget nếu cần mirror site |
| Phương thức HTTP | Chủ yếu hỗ trợ phương thức GET, POST cơ bản | Đầy đủ tất cả verb: GET, POST, PUT, DELETE, PATCH, OPTIONS | Chọn cURL cho tác vụ Webhook, REST API |
Tóm lại, nếu nhu cầu của bạn là tải file nén, kéo mã nguồn cài đặt máy chủ web như OpenLiteSpeed Web Server, tải bản sao lưu dữ liệu lớn hoặc clone website, lệnh wget trên Linux luôn là lựa chọn số một nhờ cơ chế tự động phục hồi kết nối. Ngược lại, nếu bạn cần debug HTTP headers, gửi payload JSON phức tạp hoặc tương tác API của bên thứ ba, cURL sẽ phát huy sức mạnh vượt trội hơn.
7. Khắc phục các lỗi thường gặp khi sử dụng Wget trên VPS
Trong môi trường thực tế, việc thực thi lệnh Wget không phải lúc nào cũng suôn sẻ. Dưới đây là 4 tình huống sự cố phổ biến nhất cùng giải pháp xử lý chính xác theo chuẩn kỹ thuật quản trị hệ thống.
Lỗi xác thực chứng chỉ SSL (ERROR: cannot verify certificate)
Triệu chứng: Khi tải tệp qua giao thức HTTPS, Wget báo lỗi The certificate of '...' is not trusted hoặc cannot verify ... certificate, issued by .... Nguyên nhân thường do máy chủ nguồn sử dụng chứng chỉ tự ký (Self-signed SSL), chứng chỉ đã hết hạn hoặc kho chứng chỉ CA Root trên VPS của bạn chưa được cập nhật.
Cách xử lý: Nếu bạn biết chắc chắn máy chủ nguồn an toàn và cần bỏ qua bước xác minh SSL để tiếp tục tải tệp ngay lập tức, hãy thêm cờ --no-check-certificate:
wget --no-check-certificate https://noi-bo.example.local/source-code.zip
Về mặt lâu dài, bạn nên cập nhật lại gói CA certificate trên hệ điều hành bằng lệnh sudo apt install ca-certificates -y (Ubuntu/Debian) hoặc sudo update-ca-trust (AlmaLinux/CentOS) để đảm bảo tính toàn vẹn bảo mật khi kết nối mạng bên ngoài.
Lỗi HTTP 403 Forbidden do tường lửa chặn User-Agent
Triệu chứng: Server phản hồi ERROR 403: Forbidden ngay sau khi bắt tay HTTP. Rất nhiều dịch vụ web và hệ thống CDN (như Cloudflare, CloudFront) cấu hình tường lửa WAF chặn đứng các yêu cầu có User-Agent mặc định là Wget/1.x.x để ngăn chặn crawler tự động.
Cách xử lý: Bạn có thể chỉ định một User-Agent giả lập trình duyệt Chrome hoặc Firefox thực thụ thông qua cờ --user-agent:
wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" https://example.com/tai-lieu.pdf
Kết nối bị treo hoặc timeout (Connection timed out)
Triệu chứng: Wget dừng lại rất lâu ở bước kết nối mạng hoặc thử lại liên tục hàng trăm lần khiến phiên terminal bị treo cứng do đường truyền quốc tế gặp sự cố hoặc máy chủ đích tạm thời mất kết nối.
Cách xử lý: Hãy thiết lập thời gian chờ tối đa (timeout) và giới hạn số lần thử lại (retries) cụ thể để kịch bản shell không bị nghẽn:
ont-size: 14px; margin-bottom: 20px;"># Thiết lập thời gian chờ 15 giây và chỉ thử lại tối đa 3 lần
wget --timeout=15 --tries=3 https://remote-server.com/database-dump.sql
Tải file từ máy chủ yêu cầu đăng nhập tài khoản (HTTP/FTP Auth)
Nếu tệp tin được đặt sau một lớp bảo vệ HTTP Basic Authentication hoặc máy chủ FTP có mật khẩu, bạn chỉ cần cung cấp thông tin tài khoản trực tiếp qua các cờ tham số của Wget:
ont-size: 14px; margin-bottom: 20px;"># Tải từ máy chủ Web có xác thực HTTP
wget --http-user="admin" --http-password="SecretPassword123" https://private.example.com/confidential.tar.gz
# Tải từ máy chủ lưu trữ FTP
wget --ftp-user="ftpuser" --ftp-password="FtpPassword456" ftp://fileserver.example.com/archive.zip
8. Bảng tham chiếu nhanh các lệnh Wget thông dụng
| Câu lệnh mẫu | Công dụng tóm tắt |
|---|---|
| wget URL | Tải tài nguyên về thư mục hiện tại |
| wget -O ten-file.txt URL | Lưu tài nguyên dưới tên tệp được chỉ định |
| wget -P /duong/dan URL | Lưu tài nguyên vào một thư mục định trước |
| wget -c URL | Tải tiếp tệp tin bị ngắt quãng giữa chừng |
| wget –limit-rate=2m URL | Hạn chế tốc độ tải về tối đa (ví dụ 2 MB/s) |
| wget -i urls.txt | Tải hàng loạt theo danh sách liên kết từ file |
| wget -b URL | Đưa tiến trình tải chạy ngầm, ghi nhật ký vào wget-log |
| wget -m -k -p URL | Sao chép (mirror) toàn bộ website để xem offline |
| wget –spider URL | Kiểm tra trạng thái khả dụng của liên kết (không tải file) |
| wget -N URL | Chỉ tải xuống nếu server có phiên bản mới hơn file cục bộ |
| wget –tries=5 –timeout=30 URL | Cấu hình số lần thử lại tối đa và thời gian chờ |
| wget –header=”Auth: token” URL | Đính kèm thêm tiêu đề HTTP tùy chỉnh |
| wget -q -O – URL | cmd | Xuất luồng tải ra stdout để chuyển tiếp tới lệnh khác qua pipe |
9. Nguyên tắc bảo mật và lưu ý khi tải file bằng Wget trên máy chủ VPS
Việc sử dụng lệnh Wget để kéo dữ liệu từ Internet trực tiếp vào máy chủ Linux tiềm ẩn các rủi ro bảo mật nghiêm trọng nếu người quản trị thiếu cảnh giác. Hãy luôn tuân thủ các nguyên tắc sau để bảo vệ an toàn cho hạ tầng máy chủ của bạn:
Cảnh giác với mô hình đường ống thực thi trực tiếp (Pipe to Bash)
Trên Internet, rất nhiều bài hướng dẫn cài đặt phần mềm khuyên người dùng chạy lệnh dạng: wget -qO- https://example.com/install.sh | bash. Thao tác này sẽ tải script về và trực tiếp đưa vào bộ biên dịch Bash để chạy ngay với quyền cao nhất mà không lưu file xuống đĩa.
Đây là một thói quen rất rủi ro. Nếu máy chủ nguồn bị tấn công thay đổi nội dung (Man-in-the-Middle) hoặc đường truyền bị chèn mã độc, toàn bộ hệ thống VPS của bạn có thể bị kiểm soát ngay lập tức. Quy trình an toàn chuẩn kỹ thuật là:
- Dùng Wget tải script về đĩa cứng:
wget -O install.sh https://example.com/install.sh - Mở xem và kiểm tra toàn bộ mã nguồn bên trong bằng lệnh xem văn bản:
less install.shhoặcnano install.sh - Sau khi xác nhận mã nguồn an toàn và đúng chức năng, mới phân quyền thực thi:
chmod +x install.sh && ./install.sh
Kiểm tra mã băm toàn vẹn (Checksum Verification)
Sau khi tải các tệp tin nén quan trọng, các bản build kernel hoặc tệp cài đặt hệ cơ sở dữ liệu, hãy luôn đối chiếu mã băm (MD5 hoặc SHA256) do nhà phát hành cung cấp để đảm bảo tệp không bị lỗi bit hay bị can thiệp trên đường truyền:
ont-size: 14px; margin-bottom: 20px;">sha256sum file-tai-ve.tar.gz
Quản lý dung lượng lưu trữ và bộ nhớ đệm
Khi bạn chạy Wget để tải các file nén nặng hàng chục GB rồi thực hiện giải nén tại chỗ, dung lượng ổ đĩa có thể bị đầy đột ngột (100% disk usage), khiến các dịch vụ như MySQL hoặc Nginx tự động dừng khẩn cấp. Do đó, theo kinh nghiệm thuê VPS thực chiến, bạn nên kiểm tra trước dung lượng trống bằng lệnh df -h. Đồng thời, đối với các gói máy chủ có cấu hình RAM khiêm tốn, hãy chủ động cấu hình tạo swap file trên Linux để đảm bảo hệ thống không bị crash do lỗi tràn bộ nhớ (Out-Of-Memory) trong quá trình xử lý dữ liệu tải về.
10. Câu hỏi thường gặp về lệnh Wget (FAQ)
1. Lệnh Wget và cURL khác nhau cơ bản ở điểm nào?
Wget là công cụ chuyên biệt để tải tệp tin, hỗ trợ tải đệ quy toàn bộ thư mục và tự động khôi phục tải ngắt quãng. Ngược lại, cURL là thư viện truyền tải dữ liệu hai chiều hỗ trợ nhiều giao thức hơn và thường dùng để debug API hoặc gửi HTTP request chuyên sâu.
2. Làm thế nào để tiếp tục tải file khi lệnh Wget bị gián đoạn?
Bạn chỉ cần chạy lại câu lệnh Wget với đường dẫn URL đó kèm theo cờ tham số -c (ví dụ: wget -c https://example.com/file.zip). Nếu máy chủ nguồn hỗ trợ Range Request, Wget sẽ kiểm tra số byte hiện có và tải tiếp phần còn thiếu.
3. Làm sao để xem nhật ký khi dùng lệnh Wget tải ngầm với cờ -b?
Khi chạy với cờ -b, Wget sẽ tự động ghi toàn bộ thông tin tiến trình vào tệp tin wget-log trong cùng thư mục. Bạn chỉ cần thực thi lệnh tail -f wget-log để theo dõi trực tiếp tỷ lệ phần trăm và tốc độ tải ngầm.
4. Tại sao tôi dùng Wget tải file thì bị báo lỗi 403 Forbidden?
Lỗi này xuất hiện do hệ thống tường lửa WAF của website nguồn chặn User-Agent của Wget để tránh bot crawler. Bạn có thể khắc phục triệt để bằng cách chỉ định User-Agent giả lập trình duyệt Chrome thông qua tham số --user-agent="..." khi gõ lệnh.
5. Dùng Wget để mirror toàn bộ website có vi phạm pháp luật không?
Wget chỉ là công cụ kỹ thuật. Việc sao lưu chỉ hợp pháp khi bạn là chủ sở hữu website hoặc được cấp phép khai thác dữ liệu. Nếu bạn cào dữ liệu trái phép từ trang web của người khác, hành vi đó có thể vi phạm bản quyền và điều khoản dịch vụ của họ.
Làm chủ dòng lệnh Linux cùng hạ tầng máy chủ vững chắc
Sử dụng thành thạo lệnh wget trên Linux là bước đệm then chốt giúp bạn tự động hóa công việc quản trị, sao lưu dữ liệu và kéo mã nguồn về máy chủ một cách nhanh chóng, chuẩn xác. Thay vì để máy tính cá nhân phải bật máy liên tục qua đêm để tải các gói dữ liệu khổng lồ, hãy tận dụng sức mạnh truyền tải không giới hạn của một máy chủ đám mây hoạt động liên tục 24/7.
Sở hữu VPS Linux hiệu năng cao với chi phí tối ưu
Hạ tầng máy chủ CPU Intel Gold, ổ đĩa SSD NVMe U.2 và đường truyền ổn định sẵn sàng đồng hành cùng quá trình học tập và làm việc của bạn chỉ từ 50K/tháng.
Lưu ý kỹ thuật: Tất cả các câu lệnh và cờ tham số trong bài viết được xây dựng dựa trên phiên bản GNU Wget tiêu chuẩn. Tùy thuộc vào bản phân phối Linux và chính sách tường lửa của máy chủ nguồn, phản hồi thực tế có thể thay đổi. Quản trị viên nên kiểm tra đường dẫn file và kiểm thử trên môi trường thử nghiệm trước khi chạy các kịch bản tự động trên hệ thống production.



