10 ví dụ lệnh wget trên Centos / Ubuntu / Debian / Fedora

Wget là một tiện ích dòng lệnh miễn phí và công cụ tải xuống tập tin mạng, đi kèm với nhiều tính năng giúp việc tải xuống tập tin trở nên dễ dàng. 

Cú pháp cơ bản của Wget như sau:

$ wget [tùy chọn] [URL]

Đầu tiên, kiểm tra xem tiện ích wget đã được cài đặt hay chưa trên hệ thống Linux của bạn bằng cách sử dụng lệnh sau:

$ rpm -q wget [Trên RHEL/CentOS/Fedora và Rocky Linux/AlmaLinux]
$ dpkg -l | grep wget [Trên Debian, Ubuntu và Mint]

Cài đặt Wget trên Linux

Nếu Wget chưa được cài đặt, bạn có thể cài đặt nó bằng trình quản lý gói mặc định của hệ thống Linux của bạn như sau.

$ sudo apt install wget -y      [On Debian, Ubuntu and Mint]
$ sudo yum install wget -y      [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/wget  [On Gentoo Linux]
$ sudo pacman -Sy wget           [On Arch Linux]
$ sudo zypper install wget      [On OpenSUSE]

Tùy chọn -y được sử dụng ở đây để ngăn xuất hiện các thông báo xác nhận trước khi cài đặt bất kỳ gói nào. 

Tải xuống một tập tin với lệnh wget

Lệnh này sẽ tải xuống một tập tin duy nhất và lưu nó trong thư mục hiện tại. Nó cũng hiển thị tiến trình tải xuống, kích thước, ngày và giờ trong quá trình tải xuống.

# wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
--2021-12-10 04:15:16--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’
wget2-2.0.0.tar.gz      100%[==========>]   3.40M  2.31MB/s    in 1.5s    
2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

Tải xuống tập tin với tên khác nhau bằng wget

Sử dụng tùy chọn -O (viết hoa) để tải xuống các tập tin với tên tập tin khác nhau. Ở đây, chúng ta đã chỉ định tên tập tin wget.zip như dưới đây.

# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
--2021-12-10 04:20:19--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’
wget.zip      100%[===================>] 436.49K   510KB/s    in 0.9s    
2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]

Tải xuống nhiều tập tin bằng giao thức HTTP và FTP với lệnh wget

Ở đây chúng ta sẽ xem cách tải xuống nhiều tập tin cùng một lúc sử dụng giao thức HTTP và FTP với lệnh wget.

$ wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig
--2021-12-10 06:45:17--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’
wget2-2.0.0.tar.gz      100%[==========>]   4.40M  4.31MB/s    in 1.1s    
2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

Tải xuống nhiều tập tin từ một tệp

Để tải xuống nhiều tập tin cùng một lúc, sử dụng tùy chọn -i với vị trí của tệp chứa danh sách các URL cần tải xuống. Mỗi URL cần được thêm trên một dòng riêng biệt như được hiển thị dưới đây.

Ví dụ, tệp 'download-linux.txt' sau đây chứa danh sách các URL cần tải xuống. 

# cat download-linux.txt 
https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso

# wget -i download-linux.txt
--2021-12-10 04:52:40--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’
ubuntu-20.04.3-desktop-amd64   4%[=>      ] 137.71M  11.2MB/s    eta 3m 30s
...

Nếu danh sách URL của bạn có một mẫu đánh số cụ thể, bạn có thể thêm dấu ngoặc nhọn để tải xuống tất cả các URL khớp với mẫu đó. Ví dụ, nếu bạn muốn tải xuống một loạt kernel Linux bắt đầu từ phiên bản 5.1.1 đến 5.1.15, bạn có thể làm như sau.

$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz
--2021-12-10 05:46:59--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
linux-5.1.1.tar.gz      100%[===========>] 156.51M  2.59MB/s    in 61s     
2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]
--2021-12-10 05:48:01--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’
linux-5.1.2.tar.gz     19%[===========]  30.57M  2.58MB/s    eta 50s

Tiếp tục tải xuống chưa hoàn thành bằng wget

Trong trường hợp tải xuống tập tin lớn, đôi khi sẽ dừng lại trong quá trình tải xuống. Trong trường hợp này, chúng ta tiếp tục tải xuống tệp cùng vị trí nơi nó đã bị dừng lại bằng tùy chọn -c.

Nhưng khi bạn bắt đầu tải xuống tập tin mà không chỉ định tùy chọn -c, wget sẽ thêm phần mở rộng .1 vào cuối tên tập tin, coi đó là một tải xuống mới.

# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:27:59--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’
ubuntu-20.04.3-desktop-amd64.iso        5%[++++++> ]   167.93M  11.1MB/s               
^C
# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:28:03--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’
ubuntu-20.04.3-desktop-amd64.iso        10%[+++++++=====> ] 296.32M  17.2MB/s    eta 2m 49s ^

Tải xuống toàn bộ trang web với wget

Để dễ dàng tải xuống, sao chép hoặc tạo bản sao của toàn bộ trang web giúp xem offline. Bạn sử dụng lệnh sau để tạo một bản sao cục bộ của trang web cùng với tất cả các tài nguyên (JavaScript, CSS, hình ảnh):

$ wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com

Giải thích của lệnh trên:

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
         yoursite.com/whatever/path # The URL to download

Tải xuống tệp trong nền với lệnh wget

Với tùy chọn -b, bạn có thể gửi một tải xuống trong nền ngay sau khi tải xuống bắt đầu và các nhật ký được ghi vào tệp wget.log.

$ wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Continuing in background, pid 8999.
Output will be written to ‘wget.log’.

Đặt giới hạn tốc độ tải xuống tập tin bằng wget

Với tùy chọn --limit-rate=100k, giới hạn tốc độ tải xuống được hạn chế là 100k và các nhật ký sẽ được tạo ra trong tệp wget.log như được hiển thị dưới đây. 

$ wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Continuing in background, pid 9108.
Output will be written to ‘wget-log’.

Xem tệp wget.log và kiểm tra tốc độ tải xuống của wget.

$ tail -f wget-log 
 5600K .......... .......... .......... .......... ..........  0%  104K 8h19m
 5650K .......... .......... .......... .......... ..........  0%  103K 8h19m
 5700K .......... .......... .......... .......... ..........  0%  105K 8h19m
 5750K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5800K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5850K .......... .......... .......... .......... ..........  0%  105K 8h18m
 5900K .......... .......... .......... .......... ..........  0%  103K 8h18m
 5950K .......... .......... .......... .......... ..........  0%  105K 8h18m
 6000K .......... .......... .......... .......... ..........  0% 69.0K 8h20m
 6050K .......... .......... .......... .......... ..........  0%  106K 8h19m
 6100K .......... .......... .......... .......... ..........  0% 98.5K 8h20m
 6150K .......... .......... .......... .......... ..........  0%  110K 8h19m
 6200K .......... .......... .......... .......... ..........  0%  104K 8h19m
 6250K .......... .......... .......... .......... ..........  0%  104K 8h19m
...

Tải xuống các tệp được bảo vệ bằng mật khẩu qua FTP và HTTP bằng lệnh wget

Để tải xuống một tệp từ máy chủ FTP được bảo vệ bằng mật khẩu, bạn có thể sử dụng các tùy chọn - --ftp-user=username và --ftp-password=password như sau:

$ wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz

Tải xuống một tệp từ máy chủ HTTP được bảo vệ bằng mật khẩu, bạn sử dụng tùy chọn --http-user=username và --http-password=password như sau:

$ wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz

Bỏ qua kiểm tra chứng chỉ SSL khi tải xuống bằng wget

Bỏ qua kiểm tra chứng chỉ SSL khi tải xuống các tệp qua HTTPS, bạn sử dụng tùy chọn --no-check-certificate:

$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
--2021-12-10 06:21:21--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
...

Phiên bản và trợ giúp của lệnh wget

Với các tùy chọn --version và --help, bạn có thể xem phiên bản và trợ giúp theo nhu cầu.

$ wget --version

$ wget --help

Trong bài viết này, chúng tôi đã giới thiệu các lệnh Wget trên Linux với các tùy chọn cho các tác vụ quản trị hàng ngày. Đọc man wget nếu bạn muốn biết thêm thông tin về nó. Hi vọng bài viết hữu ích với bạn!

Mọi người cũng tìm kiếm: wget fedora, wget centos, ubuntu install wget, wget debian 10, wget almalinux