Cách sử dụng lệnh Wget trong Linux
Trong bài viết này chúng ta sẽ tìm hiểu cách sử dụng lệnh wget trong Linux, lệnh này giúp tải các file từ internet bằng cách sử dụng các giao thức được sử dụng phổ biến hiện nay như HTTP, HTTPS và FTP.
Wget là một package có sẵn và hoàn toàn miễn phí và được cấp dưới giấy phép GNU GPL.Tiện ích này có thể cài đặt trên bất kì hệ điều hành nào giống với hệ điều hành Unix bao gồm Windows và MAC OS.Đặc điểm chính của wget là nó rất mạnh mẽ.
Wget vẫn làm việc trong điều kiện mạng yếu hoặc không ổn định. Wget tự động bắt đầu download lại file đó nếu trong trường hợp mạng có vấn đề. Và nó cũng tải file theo một cách đệ quy, có nghĩa là nó tải file cho đến khi nào hoàn tất thì thôi.
I. Kiểm tra Wget đã được cài hay chưa
Trước khi sử dụng Wget thì bạn cần phải kiểm tra là nó đã được cài đặt trên máy Linux của bạn hay chưa.
Bài viết này được đăng tại [free tuts .net]
Chúng ta sử dụng lệnh sau để kiểm tra.
#rpm -qa wget wget-1.12-1.4.e16.i686
Nếu hiển thị như trên thì máy bạn đã cài đặt sẵn Wget.
Nếu máy của bạn chưa cài đặt Wget thì bạn có thể sử dụng lệnh YUM, còn không bạn có thể download nó tại đây: http://ftp.gnu.org/gnu/wget/
#yum -y install wget
Dấu gạch ngang -y
được sử dụng ở đây là để ngăn chặn lời nhắc xác thực trước khi cài đặt bất kì package nào.
Sau bước kiểm tra máy đã cài đặt Wget được hay chưa bây giờ ta sẽ đi vào 10 chức năng mạnh mẽ của Wget
II. Tổng hợp 10 ví dụ về lệnh Wget trong Linux
1. Tải một file đơn giản
Lệnh này sẽ download một file từ Internet về máy và lưu trữ nó trong thư mục hiện tại (nếu muốn biết bạn đang ở thư mục nào sử dụng lệnh pwd).
Khi được tải về trên terminal sẽ hiển thị các thông tin như quá trình tải về, kích thước file, ngày giờ tải về trong khi tải cho chúng ta.
# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
2. Tải file với một tên khác
Sử dụng -O
(viết hoa) để tải file với tên file mà bạn muốn lưu.
# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Như ở trên thì ta sẽ có được một file tải về có tên là wget.zip
3. Tải nhiều file với giao thức HTTP và FTP
Chúng ta sẽ xem cách tải nhiều file sử dụng giao thức HTTP và FTP với một lệnh wget được thực hiện như thế nào nhé.
# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
4. Đọc địa chỉ URL từ một file có sẵn
Bạn có thể lưu trữ một địa chỉ URL trong một file và sau đó download nó sử dụng lựa chọn là -i.
Bên dưới mình đã tạo một file tmp.txt
trong thư mục wget, nơi mà ta sẽ lưu trữ địa chỉ URL để tải về.
# wget -i /wget/tmp.txt
5.Tiếp tục tải về khi chưa hoàn tất
Khi bạn đang tải một file có kích thước lớn nhưng không may có sự cố xảy ra thì nó sẽ dừng việc tải xuống. Trong trường này nếu bạn muốn tiếp tục tải phần còn lại của file đó thì chúng ta sử dụng tùy chọn -c
.
Nhưng nếu bạn tải một file mà không có -c
thì wget sẽ thêm .1
vào phần mở rộng ở cuối file, và xem đó như một bản tải xuống mới. Vì vậy, cách tốt nhất là thêm -c
vào khi bạn muốn tải một file có kích thước lớn.
# wget -c http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
6. Tải file với việc nối .1 vào tên file
Khi bạn bắt đầu tải xuống mà không có lựa chọn -c
thì lệnh wget sẽ thêm .1
vào cuối file và bắt đầu với việc tải một file mới. Nếu file .1 đã tồn tại thì file .2
sẽ được nối vào cuối của file.
# wget http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Chúng ta thấy .1
đã được nối vào cuối của file.
# ls -l CentOS* -rw-r--r--. 1 root root 3877262 Oct 2 12:47 CentOS-6.3-x86_64-LiveDVD.iso -rw-r--r--. 1 root root 181004 Oct 2 12:50 CentOS-6.3-x86_64-LiveDVD.iso.1
7. Tải file trong background
Chúng tôi sẽ nói sơ qua background là gì để bạn hiểu, khi bạn thực hiện một hành động hay còn gọi một tiến trình trong linux thì bạn có 2 cách để chạy nó, đó là background process và foreground process.
Lợi thế của việc chạy một tiến trình trong background là bạn có thể chạy có lệnh khác mà không phải đợi tới khi nó kết thúc mới bắt đầu một tiến trình mới.
Trong lệnh wget chúng ta muốn tải một file trong background thì sử dụng lựa chọn -b
, sau khi tải xong nó sẽ ngay lập tức được ghi vào trong file /wget/log.txt
.
# wget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso Continuing in background, pid 3550.
8. Hạn chế giới hạn tốc độ tải xuống
Với lựa chọn là -limit-race=100k
, giới hạn tốc độ tải xuống là 100k và nó sẽ được lưu vào file /wget/log.txt
như hình bên dưới.
# wget -c --limit-rate=100k /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
9. Hạn chế download FTP và HTTP với username và password
Với lựa chọn -http-user=username
, -http-password=password
, và -ftp-user=username
, -ftp-password=password
, bạn có thể tải xuống các website bị hạn chế mật khẩu như hình bên dưới.
# wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
10. Kiểm tra phiên bản hiện tại của Wget và lệnh Help
Với lựa chọn là -version
, bạn có thể xem phiên bản hiện tại của wget và -help
nếu bạn cần được giúp đỡ thêm về lệnh wget
.
# wget --version # wget --help
Trên là cách sử dụng lệnh wget trong Linux, với lệnh này bạn có thể tại dữ liệu trên internet một cách thoải mái. Chúc bạn thành công.