WgetCommand thường xuyên được sử dụng trong Linux. Vậy wget là gì chúng ta cùng tìm hiểu về nó nhé

Wget là gì?

GNU Wget hay Wget ( còn được gọi là Geturl) là 1 tiện ích chạy trên môi trường dòng lệnh, được sử dụng cho việc tải các tập tin và nội dung trên môi trường Internet, đó có thể là 1 website hay 1 trang FTP

Wget được cung cấp kèm theo đa số các bản phân phối Unix( Linux và MacOS cũng nằm trong Unix, tuy nhiên chi có MacOS là đạt chứng chỉ của Unix) phổ biến, được cung cấp qua nền tảng là một thư viện packages, wget hỗ trợ việc download các tài nguyên thông qua các protocols web như: http, https, ftp, ftps và hỗ trợ cả proxies.

Cách sử dụng wget

1. Cú pháp Wget

Cú pháp chung của wget là:

$ wget http://slynux.org

--2010-08-01 07:51:20-- http://slynux.org/
Resolving slynux.org... 174.37.207.60
Connecting to slynux.org|174.37.207.60|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15280 (15K) [text/html]
Saving to: "index.html"
100%[======================================>] 15,280 75.3K/s in 0.2s
2010-08-01 07:51:21 (75.3 KB/s) - "index.html" saved [15280/15280]

Chúng ta có thể chỉ định nhiều đường dẫn cho wget như sau:

$ wget URL1 URL2 URL3

2. Lưu tập tin với tên khác

Thông thường, các tập tin được tải về có tên giống với tên của tập tin trong đường dẫn (URL), và thông tin về quá trình tải được hiển thị ra màn hình.

Chúng ta có thể lưu tập tin được tải về với tên khác với tên đang có, bằng cách sử dụng tùy chọn -O. Nếu tập tin với tên được chỉ định đã tồn tại rồi, thì nội dung của tập tin được tải về sẽ ghi đè lên tập tin đang có.

Thay vì hiện thị thông tin của quá trình tải ra màn hình, chúng ta có thể lưu các thông tin này trong 1 tập tin, bằng việc sử dụng tùy chọn -o.

$ wget ftp://example_domain.com/somefile.img -O dloaded_file.img -o log

Bằng việc sử dụng lệnh trên, sẽ không có thông tin gì được in ra màn hình. Nhật ký hay tiến trình sẽ được ghi vào tập tin log, và tập tin được tải về sẽ có tên là dloaded_file.img.

3. Tự động tải lại khi bị lỗi

Trong quá trình tải, nếu kết nối không ổn định, việc tải tập tin có thể bị gián đoạn và thất bại. Trong những trường hợp này, chúng ta thường thực hiện lại việc tải trên. Tuy nhiên thay vì phải thực hiện lại việc tải 1 cách thủ công, wget cung cấp cho chúng ta 1 tùy chọn để thực hiện lại việc tải 1 cách tự động mỗi khi quá trình tải bị mất kết nối.

Để thực hiện việc này, chúng ta sử dụng đối số -t trong wget như sau:

$ wget -t 5 URL

Trong lệnh trên, 5 là số lần mà wget sẽ cố gắng tải lại tập tin khi bị mất kết nối trong quá trình tải, thay 5 bằng số lần mà chúng ta muốn wget thực hiện.

Nếu chúng ta không muốn chỉ định số lần tải lại mà muốn wget lặp lại việc tải cho đến khi thành công mới dừng lại, trong trường hợp này ta thực hiện như sau:

$ wget -t o URL

4. Giới hạn tốc độ và định mức tải

Khi chúng ta có 1 băng thông Internet giới hạn và nhiều ứng dụng cùng chia sẻ kết nối này, và nếu cần tải 1 tập tin lớn, nó sẽ chiếm hết băng thông của các ứng dụng khác, làm cho các ứng dụng này không hoạt động được.

Để giới hạn tốc độ tải trong wget, sử dụng tham số –limit-rate như sau:

$ wget --limit-rate 20k http://example.com/file.iso

Trong đó:

  • k – Kilobyte (KB)
  • m – Megabyte (MB) Chúng ta cũng có thể chỉ rõ định mức tối đa cho việc tải. Việc tải sẽ dừng lại khi đạt đến định mức.

Để định hạn mức cho việc tải, sử dụng tham số –-quota hoặc -Q như sau:

$ wget -Q 100m http://example.com/file1 http://example.com/file2

5. Bắt đầu lại và tiếp tục tải

Nếu việc tải bị gián đoạn trước khi nó hoàn tất, chúng ta có thể bắt đầu lại (resume) việc tải tại nơi bị gián đoạn bằng việc sử dụng tùy chọn -c như sau:

$ wget -c URL

6. Sao chép toàn bộ trang web

wget có 1 tùy chọn để tải xuống toàn bộ 1 trang web bằng cách tập hợp 1 cách đệ quy tất cả liên kết URL trong các trang web và tải tất cả chúng về. Do đó, chúng ta hoàn toàn có thể tải tất cả các trang của 1 website.

Để tải các trang web, sử dụng tùy chọn –mirror như sau:

$ wget --mirror --convert-links example.com

Hoặc sử dụng lệnh sau:

$ wget -r -N -k -l DEPTH URL

Trong đó:

  • -l => chỉ ra độ sâu của các trang web dưới dạng các cấp. Điều này nghĩa là wget sẽ chỉ đi qua số lượng cấp mà chúng ta chỉ định.
  • DEPTH => độ sâu của trang web.
  • -r (recursive) => đệ quy, được dùng chung với -l.
  • -N được dùng để kích hoạt khóa thời gian cho tập tin.
  • URL là đường dẫn cơ sở cho 1 website nơi việc tải cần được khởi tạo
  • -k hoặc –convert-links => chỉ thị cho wget chuyển đổi các liên kết đến các trang khác trong trang được tải đến bản sao cục bộ của các trang đó.

Ngoài ra để tải 1 trang web về máy, chúng ta có thể sử dụng lệnh lynx như sau:

$ lynx -dump URL > webpage_as_text.txt

ví dụ:

$ lynx -dump http://google.com > plain_text_page.txt

7. Chứng thực HTTP hoặc FTP

1 vài trang web yêu cầu chứng thực cho các đường dẫn HTTP hoặc FTP. Để thực hiện việc chứng thực này, sử dụng các đối số –user–password như sau:

$ wget --user username --password pass URL

Việc nhập mật khẩu dưới dạng văn bản thô trong nội dung câu lệnh như trên sẽ không bảo mật và an toàn. Trong trường hợp này, chúng ta nên thay thế –password bằng –ask-password như sau:

$ wget --user username --ask-password URL
Password for user 'username': <Mật khẩu sẽ không hiển thị ra màn hình>

Viết câu trả lời

Drop Images

0 Bình luận