GNU Wget là một tiện ích dòng lệnh để tải xuống các tệp từ web. Với Wget, bạn có thể tải xuống các tệp bằng các giao thức HTTP, HTTPS và FTP. Wget cung cấp một số tùy chọn cho phép bạn tải xuống nhiều tệp, tiếp tục tải xuống, hạn chế băng thông, tải xuống đệ quy, tải xuống trong nền, phản ánh một trang web và nhiều hơn nữa.
Bài viết này cho thấy cách sử dụng lệnh thông qua các ví dụ thực tế và giải thích chi tiết về các tùy chọn phổ biến nhất.
Cài đặt Wget
Gói wget được cài đặt sẵn trên hầu hết các bản phân phối Linux hiện nay.
Để kiểm tra xem gói Wget có được cài đặt trên hệ thống của bạn hay không, hãy mở bảng điều khiển, nhập và nhấn enter. Nếu bạn đã cài đặt wget, hệ thống sẽ báo wget: missing URL
. Nếu không, nó sẽ báo wget command not found
Nếu không được cài đặt, bạn có thể dễ dàng cài đặt nó bằng cách sử dụng trình quản lý gói của bản phân phối của bạn.
Cài đặt Wget trên Ubuntu và Debian
sudo apt install wget
Cài đặt Wget trên CentOS và Fedora
sudo yum install wget
Cú pháp Lệnh Wget
Trước khi đi vào cách sử dụng lệnh, hãy bắt đầu bằng cách xem lại cú pháp cơ bản.
Các biểu thức tiện ích có dạng sau:
wget [options] [url]
- options – Các tùy chọn Wget
- url – URL của tệp hoặc thư mục bạn muốn tải xuống hoặc đồng bộ hóa.
Tải file với wget
Ở dạng đơn giản nhất, khi được sử dụng mà không có bất kỳ tùy chọn nào, sẽ tải tài nguyên được chỉ định trong [url] về thư mục hiện tại.
Trong ví dụ sau, chúng ta đang tải xuống kho lưu trữ tar nhân Linux:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz
Như bạn có thể thấy từ hình trên, bắt đầu bằng cách resolve địa chỉ IP của tên miền, sau đó kết nối với máy chủ từ xa và bắt đầu chuyển giao.
Trong quá trình tải xuống, hiển thị thanh tiến trình cùng với tên tệp, kích thước tệp, tốc độ tải xuống và thời gian ước tính để hoàn thành việc tải xuống. Sau khi tải xuống hoàn tất, bạn có thể tìm thấy tệp đã tải xuống trong thư mục làm việc hiện tại của mình .
Để tắt đầu ra, hãy sử dụng tùy chọn -q.
Nếu tệp đã tồn tại, wget sẽ thêm .N (số) ở cuối tên tệp.
Lưu tệp đã tải xuống dưới tên khác
Để lưu tệp đã tải xuống dưới một tên khác, hãy dùng tùy chọn -O tiếp theo là tên đã chọn:
wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip
Lệnh trên sẽ lưu tệp hugo zip mới nhất từ GitHub thay vì tên ban đầu của nó.
Tải tệp về Thư mục Cụ thể
Theo mặc định, sẽ lưu tệp đã tải xuống trong thư mục làm việc hiện tại. Để lưu tệp đến một vị trí cụ thể, hãy dùng tùy chọn wget -P
:
wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
Lệnh trên cho biết lưu tệp CentOS 7 iso vào thư mục wget/mnt/iso
Giới hạn tốc độ tải xuống
Để hạn chế tốc độ tải xuống, hãy sử dụng tùy chọn này –limit-ratekmg. Theo mặc định, tốc độ được đo bằng byte / giây. Thêm vào cho kilobyte, cho megabyte và cho gigabyte.
Lệnh sau đây sẽ tải xuống Go Binary và giới hạn tốc độ tải xuống ở mức 1MB:
wget --limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Tùy chọn này rất hữu ích khi bạn không muốn tiêu thụ tất cả băng thông có sẵn.
Tiếp tục tải xuống
Bạn có thể tiếp tục tải xuống bằng tùy chọn này. Điều này rất hữu ích nếu kết nối của bạn giảm trong quá trình tải xuống tệp lớn và thay vì bắt đầu tải xuống từ đầu, bạn có thể tiếp tục tệp trước đó.
Trong ví dụ sau, chúng ta đang tiếp tục tải xuống tệp ISO Ubuntu 18.04:
wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Nếu máy chủ từ xa không hỗ trợ tiếp tục tải xuống, sẽ bắt đầu tải xuống ngay từ đầu và ghi đè lên tệp hiện có.
Tải xuống trong Nền
Để tải xuống trong nền, hãy sử dụng tùy chọn -b. Trong ví dụ sau, chúng ta đang tải xuống tệp OpenSuse iso ở chế độ nền:
wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
Theo mặc định, output được chuyển hướng đến tệp trong thư mục hiện tại. Để xem trạng thái tải xuống, hãy dùng lệnh tail:
tail -f wget-log
Thay đổi User-Agent
Đôi khi khi tải xuống tệp, máy chủ từ xa có thể được thiết lập để chặn Wget User-Agent. Trong những tình huống như thế này, để mô phỏng một trình duyệt khác, hãy sử dụng tùy chọn -U.
wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/
Lệnh trên sẽ mô phỏng Firefox 60 yêu cầu trang từ wget-forbidden.com
Tải xuống Nhiều tệp
Nếu bạn muốn tải xuống nhiều tệp cùng một lúc, hãy sử dụng tùy chọn -i theo sau là đường dẫn đến tệp cục bộ hoặc bên ngoài có chứa danh sách url sẽ được tải xuống. Mỗi URL cần phải ở trên một dòng riêng biệt.
Ví dụ sau đây cho thấy cách tải xuống các tệp Arch Linux, Debian và Fedora iso bằng cách sử dụng các URL được chỉ định trong tệp:
wget -i linux-distros.txt
linux-distros.txt
http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso
Nếu bạn chỉ định là tên tệp, URL sẽ được đọc từ đầu vào tiêu chuẩn.-
Tải xuống qua FTP
Để tải xuống tệp từ máy chủ FTP được bảo vệ bằng mật khẩu, hãy chỉ định tên người dùng và mật khẩu như hình dưới đây:
wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz
Tải bản sao của một trang web
Để tạo một bản sao của một trang web với , hãy sử dụng tùy chọn -m. Điều này sẽ tạo ra một bản sao cục bộ hoàn chỉnh của trang web bằng cách theo dõi và tải xuống tất cả các liên kết nội bộ cũng như các tài nguyên trang web (JavaScript, CSS, Images).
wget -m https://example.com
Nếu bạn muốn sử dụng trang web đã tải xuống để duyệt web ở local, bạn sẽ cần phải chuyển một vài đối số bổ sung sang lệnh ở trên.
wget -m -k -p https://example.com
Tùy chọn này sẽ chuyển đổi các liên kết trong các tài liệu đã tải xuống để làm cho chúng phù hợp để xem ở local. Tùy chọn này sẽ cho biết tải xuống tất cả các tệp cần thiết để hiển thị trang HTML.
Bỏ qua Kiểm tra Chứng chỉ
Nếu bạn muốn tải xuống tệp qua HTTPS từ máy chủ có chứng chỉ SSL không hợp lệ, hãy dùng tùy chọn:--no-check-certificate
wget --no-check-certificate https://domain-with-invalid-ss.com
Tải xuống Đầu ra chuẩn
Trong ví dụ sau, wget sẽ tải xuống và xuất phiên bản WordPress mới nhất để stdout và pipeline giải nén vào thư mục /var/www/.
wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www
Kết thúc
Với wget , bạn có thể tải xuống nhiều tệp, tiếp tục tải xuống một phần, phản chiếu trang web và kết hợp các tùy chọn Wget theo nhu cầu của bạn.
Để tìm hiểu thêm về Wget, hãy truy cập trang GNU wget Manual.