Hướng dẫn Linux

Wget trong Linux và cách sử dụng với 12 ví dụ

Trong bài viết Tổng hợp một số lệnh về cURL chúng ta đã được biết tới công cụ cURL. Hôm nay chúng ta sẽ cùng tìm hiểu về Wget

A. Wget trong Linux là gì

Wget là một công cụ máy tính được tạo bởi GNU Project. Bạn có thể sử dụng nó để lấy nội dung và tệp từ các máy chủ web khác nhau. Tên của nó là sự kết hợp của World Wide Web và từ “get”. Nó có hỗ trợ các giao thức như FTP, SFTP, HTTP và HTTPS.

B. Cách cài đặt Wget

Nếu máy tính của bạn chưa cài đặt wget, bạn có thể cài đặt nó thông qua câu lệnh sau:
Ubuntu: sudo apt-get install wget
CentOS: sudo yum install wget

C. Cách dùng Wget

1. Tải về một tập tin

Một trong những lệnh wget cơ bản nhất là tải xuống một tệp và lưu trữ nó trên thư mục làm việc hiện tại của bạn. Ví dụ: bạn có thể tải được phiên bản WordPress mới nhất bằng cách sử dụng cách sau:

wget https://wordpress.org/latest.zip

Trong ví dụ này, một tệp có tên latest.zip sẽ được tải xuống trong thư mục làm việc hiện tại. Bạn cũng sẽ thấy thêm thông tin, chẳng hạn như tiến trình tải xuống, tốc độ, kích thước, thời gian và ngày tải.

2. Tải về nhiều tập tin

Chúng ta cũng có thể sử dụng wget và tải xuống nhiều tệp cùng một lúc. Để làm điều đó, chúng ta sẽ cần tạo một file text và đặt các URL tải xuống ở đó.
Trong ví dụ này, chúng ta sẽ tải các phiên bản của WordPress, Joomla và Drupal bằng cách sử dụng wget. Theo câu lệnh sau:

nano vidu.txt

Và paste các link cần tải vào

https://wordpress.org/latest.zip

https://downloads.joomla.org/cms/joomla3/3-8-5/Joomla_3-8-5-Stable-Full_Package.zip

https://ftp.drupal.org/files/projects/drupal-8.4.5.zip

Sau khi hoàn tất, bạn có thể sử dụng tham số -i để nhận tất cả các tệp được lưu trữ trong tệp văn bản đã tạo của bạn:
wget -i vidu.txt

3. Tải tệp và lưu với một tên khác

Trong phần này, chúng ta sẽ lưu một tệp bằng một tên khác với tham số -O:
wget -O wp-file.zip https://wordpress.org/latest.zip
Trong trường hợp này, tài nguyên đã tải xuống sẽ được lưu dưới tên wp-file.zip.

4. Tải tệp và lưu vào một nơi được chỉ định

Bạn có thể sử dụng wget để đặt một tệp trong thư mục khác bằng tham số -P:
wget -P tailieu/luutru/ https://wordpress.org/latest.zip
Tệp bạn tải xuống bằng cú pháp này sẽ xuất hiện trong thư mục có dường dẫn tailieu/luutru/

5. Giới hạn tốc độ tải xuống

Với wget, bạn cũng có thể giới hạn tốc độ tải xuống bằng tham số –limit-rate. Điều này rất hữu ích khi bạn tải các tệp lớn và sẽ ngăn không cho sử dụng toàn bộ băng thông của bạn. Lệnh wget này sẽ đặt giới hạn tải là 500KB:
wget –limit-rate=500k https://wordpress.org/latest.zip

6. Đặt số lần thử lại khi tải file thất bại

Một số sự cố kết nối Internet có thể khiến quá trình tải xuống của bạn bị gián đoạn. Để giải quyết vấn đề này, chúng ta có thể tăng số các lần thử lại bằng cách sử dụng tham số -tries:
wget -tries=100 https://wordpress.org/latest.zip
Câu lệnh trên sẽ thử lại 100 lần nếu xảy ra lỗi khi tải file.

7. Tải file trong nền

Đối với các tệp cực lớn, bạn có thể tận dụng tham số -b. Nó sẽ tải nội dung của bạn dưới nền.
wget -b http://example.com/testing.zip
Một file wget-log sẽ xuất hiện trong thư mục làm việc của bạn, có thể được sử dụng để kiểm tra tiến trình và trạng thái tải xuống của bạn. Lệnh này cũng sẽ thực hiện in những dòng cuối của file wget-log đó:
tail -f wget-log

8. Tải file theo giao thức FTP

Lệnh này cũng có thể sử dụng được với giao thức FTP. Bạn chỉ cần xác định tên người dùng và mật khẩu như trong lệnh wget sau:
wget –ftp-user=USERNAME –ftp-password=YOUR_PASSWORD ftp://example.com/something.zip

9. Tiếp tục tải khi bị gián đoạn

Quá trình tải xuống của bạn có thể bị gián đoạn nếu bạn mất kết nối internet hoặc bị mất điện. Điều này là khá phổ biến xảy ra khi tải xuống các tập tin siêu to khổng lồ :)). Thay vì bắt đầu lại, bạn có thể tiếp tục tải xuống bằng cách sử dụng câu lệnh sau:
wget -c https://example/file-sieu-to-khong-lo.zip
Nếu bạn không thêm tham số -c vào câu lệnh trên, tệp mới sẽ tự thêm .1 vào cuối vì nó đã tồn tại.

10. Truy xuất toàn bộ trang web

Chúng ta cũng có thể sử dụng lệnh wget để tải xuống nội dung của toàn bộ trang web. Điều này sẽ cho phép bạn xem nó cục bộ mà không cần kết nối internet. Đây là một ví dụ:
wget –mirror –convert-links –page-requisites –no-parent -P documents/websites/ https://example.com
Các thành phần của lệnh trên:

  • –mirror: Nó làm cho việc tải xuống của bạn thực hiện đệ quy.
  • –convert-links: Tất cả các liên kết sẽ được chuyển đổi để thích hợp cho việc sử dụng ngoại tuyến .
  • –page-requisites: bao gồm tất cả các tệp cần thiết như CSS, JS và hình ảnh.
  • –no-parent: Nó đảm bảo rằng các thư mục trên hệ thống phân cấp không được truy xuất.
  • -P documents/websites/: Điều này đảm bảo rằng tất cả nội dung đi đến thư mục được chỉ định của chúng ta.

Khi quá trình kết thúc, bạn sẽ có thể mở trang web đã tải xuống cục bộ và tìm tất cả các tệp trong thư mục documents/websites/

11. Xác định vị trí các liên kết bị hỏng

Hãy để thử một cái gì đó nâng cao hơn. Chúng ta có thể sử dụng lệnh wget để xác định tất cả các URL bị hỏng hiển thị lỗi 404 trên một trang web cụ thể. Bắt đầu bằng cách thực hiện như sau:

wget -o wget-log -r -l 5 –spider http://example.com

  • -o: Tập hợp output thành một tập tin để sử dụng sau.
  • -l: Chỉ định mức đệ quy.
  • -r: Làm cho việc tải về theo cách đệ quy.
  • –spider: Đặt wget vào chế độ spider.

Bây giờ chúng ta có thể kiểm tra tệp wget-log để tìm danh sách các liên kết bị hỏng. Đây là lệnh để thực hiện việc đó:
grep -B 2 ‘404’ wget-log | grep “http” | cut -d ” ” -f 4 | sort -u

12. Tải các tệp được đánh số

Nếu bạn có tệp hoặc hình ảnh được đánh số trong một danh sách nhất định, bạn có thể dễ dàng tải xuống tất cả chúng với cú pháp sau:
wget http://example.com/images/{1..50}.jpg

Bài viết bởi Tiền Minh Vy

Visits: 2490