20 ví dụ về lệnh wget cho Linux

Tác giả sysadmin, T.M.Hai 28, 2022, 01:57:50 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

20 ví dụ về lệnh wget cho Linux


Wget là một trình tải xuống mạng không tương tác có thể được sử dụng để tải xuống các tệp trong Unix/Linux. Nó hỗ trợ các giao thức HTTP, HTTPS và FTP và cũng có hỗ trợ proxy.

Lệnh wget khá mạnh mẽ và có rất nhiều tùy chọn, trong hướng dẫn này, chúng tôi sẽ đề cập đến 20 ví dụ wget quan trọng nhất sẽ giúp bạn tìm hiểu cách sử dụng nó tốt nhất.

Không có gì lạ khi wget không được cài đặt theo mặc định, nếu lệnh không có sẵn cho bạn thì trước tiên bạn phải cài đặt nó như hình bên dưới.

CentOS/RHEL/Fedora

Mã nguồn [Chọn]
[root@centos7 ~]# yum install wget -y
Debian/Ubuntu

Mã nguồn [Chọn]
root@ubuntu:~# apt-get install wget -y
Bây giờ chúng ta đã cài đặt wget và sẵn sàng sử dụng, đây là các ví dụ về lệnh wget hàng đầu của chúng tôi.

1. Tải xuống một tệp

Hãy bắt đầu với một ví dụ cơ bản về việc tải xuống một tệp đơn giản từ Internet. Chúng tôi chỉ cần chỉ định tệp mà chúng tôi muốn tải xuống sau lệnh wget, như được hiển thị bên dưới.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
--2016-08-31 11:30:54--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 394264576 (376M) [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso'

68% [=========================>             ] 271,936,588 2.32MB/s  eta 54s

Đầu ra cung cấp cho chúng tôi phần trăm hoàn thành, tốc độ tải xuống và ước tính thời gian còn lại.

Điều này đã tải xuống một bản sao của tệp vào thư mục làm việc hiện tại có cùng tên tệp như trong URL.

Mã nguồn [Chọn]
[root@centos7 Downloads]# ls
CentOS-7-x86_64-NetInstall-1511.iso

2. Tải xuống thư mục cụ thể với tên mới

Chúng ta có thể sử dụng tùy chọn -O để chỉ định tệp đầu ra, cho phép chúng tôi cho wget biết nơi tải tệp xuống và đặt tên tệp là gì. Điều này giúp chúng tôi không phải tải nó xuống thư mục làm việc hiện tại, di chuyển nó và sau đó có thể đổi tên nó theo yêu cầu nếu làm theo ví dụ đầu tiên.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -O /root/file.txt https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
--2016-08-31 11:36:25--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 406 [text/plain]
Saving to: '/root/file.txt'

100%[==============================================================================>] 406         --.-K/s   in 0s

2016-08-31 11:36:25 (139 MB/s) - '/root/file.txt' saved [406/406]

Ở đây chúng tôi đã tải xuống tệp từ xa md5sum.txt và lưu nó vào /root/file.txt.

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

Thay vì để wget tải xuống ở tốc độ tối đa là mặc định, chúng ta có thể tùy chọn giới hạn nó ở một tốc độ cụ thể với tùy chọn --limit-rate. Điều này có thể hữu ích nếu bạn không muốn quên sử dụng tất cả băng thông mạng có sẵn.

Giới hạn tốc độ có thể được xác định bằng một số byte hoặc kilobyte với hậu tố k hoặc megabyte với hậu tố m.

Trong ví dụ bên dưới, chúng tôi bắt đầu tải xuống tệp.ISO với giới hạn 500KB/giây và điều này được xác nhận trong đầu ra wget.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget --limit-rate=500k https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
--2016-08-31 11:37:47--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 394264576 (376M) [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso.1'

 2% [==>                                              ] 11,726,532   500KB/s  eta 12m 31s

4. Không Tải Nhiều Phiên Bản

Theo mặc định, nếu bạn tải xuống cùng một tệp vào cùng một thư mục lần thứ hai, tệp đó sẽ được đặt tên với phần mở rộng.1 được thêm vào cuối. Phiên bản tiếp theo sẽ có.2, tiếp theo là.3, v.v.

Điều này đã được thấy ở trên trong ví dụ trước của chúng tôi, khi chúng tôi cố tải xuống lại cùng một tệp.iso, chúng tôi có thể thấy rằng nó đã được lưu với phần mở rộng.1.

Mã nguồn [Chọn]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso.1'
Nếu hành vi này là không mong muốn, thay vào đó, chúng tôi có thể sử dụng tùy chọn -nc cho 'no clobber' để ngăn chặn hành vi này và ngăn việc tải xuống các bản sao mới hơn của tệp nếu chúng đã tồn tại.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -nc https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
File 'CentOS-7-x86_64-NetInstall-1511.iso' already there; not retrieving.

5. Không kiểm tra chứng chỉ SSL/TLS

Theo mặc định, khi tải xuống qua HTTPS, wget sẽ kiểm tra chứng chỉ với các CA có sẵn, tuy nhiên nếu chứng chỉ không hợp lệ hoặc có thể tự ký thì quá trình chuyển sẽ không thành công.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget https://localhost/file.txt
--2016-08-31 11:44:14--  https://localhost/file.txt
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:443... connected.
ERROR: cannot verify localhost's certificate, issued by '/C=--/ST=SomeState/
L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/
CN=centos7.example.com/[email protected]':
  Unable to locally verify the issuer's authority.
    ERROR: certificate common name 'centos7.example.com' doesn't match requested host name 'localhost'.
To connect to localhost insecurely, use `--no-check-certificate'.

Chúng tôi có thể muốn bỏ qua kiểm tra này và tải xuống tệp. Điều này được thực hiện với tùy chọn --no-check-cert, buộc một chế độ hoạt động không an toàn cho phép bạn tiếp tục. Nói chung, đây không phải là một lựa chọn tốt khi truyền dữ liệu bí mật, tuy nhiên, nó khá hữu ích trong các môi trường thử nghiệm thường sử dụng chứng chỉ tự ký.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget https://localhost/file.txt --no-check-certificate
--2016-08-31 11:44:32--  https://localhost/file.txt
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:443... connected.
WARNING: cannot verify localhost's certificate, issued by '/C=--/ST=SomeState/
L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/
CN=centos7.example.com/[email protected]':
  Unable to locally verify the issuer's authority.
    WARNING: certificate common name 'centos7.example.com' doesn't match requested host name 'localhost'.
HTTP request sent, awaiting response... 200 OK
Length: 406 [text/plain]
Saving to: 'file.txt'

100%[============================================================>] 406         --.-K/s   in 0s

2016-08-31 11:44:32 (52.1 MB/s) - 'file.txt' saved [406/406]
   
6. Bật Dấu thời gian

Theo mặc định, dấu thời gian của tệp được tải xuống cục bộ sẽ giống với tệp trên máy chủ từ xa. Thay vào đó, chúng ta có thể sử dụng --no-use-server-timestamps sẽ không đặt dấu thời gian của tệp cục bộ thành dấu thời gian do tệp trên máy chủ cung cấp mà thay vào đó được đặt thành khi tệp được tải xuống, điều này có thể hữu ích hơn vì nó cho phép us để xem khi tệp được tải xuống.

Như được hiển thị, chúng tôi có tệp.iso ban đầu từ ví dụ đầu tiên có ngày '10 tháng 12 năm 2015′, tuy nhiên, khi chúng tôi tải xuống bản sao thứ hai với --no-use-server-timestamps được chỉ định sau khi hoàn tất, dấu thời gian của nó được liệt kê như ngày hôm nay, ' ngày 31 tháng 8 năm 2016'.

Mã nguồn [Chọn]
[root@centos7 Downloads]# ls -la
total 477668
-rw-r--r--. 1 root root 394264576 Dec 10  2015 CentOS-7-x86_64-NetInstall-1511.iso

[root@centos7 Downloads]# wget --no-use-server-timestamps https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
--2016-08-31 11:50:10--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 394264576 (376M) [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso.1'

100%[================================================================>] 394,264,576 1.21MB/s   in 3m 44s

2016-08-31 11:53:55 (1.68 MB/s) - 'CentOS-7-x86_64-NetInstall-1511.iso.1' saved [394264576/394264576]

[root@centos7 Downloads]# ls -la
total 770060
-rw-r--r--. 1 root root 394264576 Dec 10  2015 CentOS-7-x86_64-NetInstall-1511.iso
-rw-r--r--. 1 root root 394264576 Aug 31 11:53 CentOS-7-x86_64-NetInstall-1511.iso.1

7. Thay đổi thanh tiến trình

Theo mặc định, wget sẽ hiển thị thanh tiến trình ở dạng '=====>' cùng với phần trăm hoàn thành. Chúng ta có thể thay đổi điều này bằng tùy chọn --progress thành 'dot', như hình bên dưới.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget --progress=dot https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
--2016-08-31 11:47:07--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 394264576 (376M) [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso.2'

     0K..................................................  0%  374K 17m8s
    50K..................................................  0% 1.33M 10m55s
   100K..................................................  0%  744K 10m9s
   150K..................................................  0%  740K 9m47s
   200K..................................................  0% 1.37M 8m44s
   250K..................................................  0%  753K 8m42s
   300K..................................................  0% 1.39M 8m6s
   350K..................................................  0%  752K 8m9s
   400K..................................................  0% 1.38M 7m45s
   450K..................................................  0%  760K 7m49s
   500K..................................................  0%  735K 7m54s
  ...

Đây chỉ là một giải pháp thay thế đơn giản mà chúng ta có thể sử dụng để hiển thị đầu ra khác đi trong khi tải xuống một tệp.

8. Tiếp tục tải xuống một phần tệp

Nếu chúng tôi có tệp được tải xuống một phần chưa hoàn tất, chúng tôi có thể sử dụng tùy chọn -c để tiếp tục tải xuống tệp từ phiên bản trước đó của wget hoặc một số chương trình khác.

Về cơ bản, nếu chúng tôi chạy wget với -c và chúng tôi đã có một tệp có cùng tên trên hệ thống cục bộ của mình, wget sẽ cho rằng phần tệp chúng tôi đã có là chính xác và sử dụng nó làm phần bù khi yêu cầu phần còn lại của dữ liệu. Bằng cách này, máy chủ sẽ chỉ cần chuyển phần còn lại.

Trong ví dụ dưới đây, chúng tôi bắt đầu thực hiện một thao tác wget bình thường cho tệp.iso, sau đó chúng tôi nhấn 'ctrl+c' để hủy quá trình chuyển, để lại cho chúng tôi một tệp hoàn chỉnh một phần. Ở đây, chúng tôi chạy lại wget với -c để tiếp tục chuyển, chúng tôi có thể thấy trong đầu ra rằng một phần của tệp chúng tôi đã có được biểu thị bằng ký tự '+'.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -c https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
--2016-08-31 11:33:26--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 394264576 (376M), 74101684 (71M) remaining [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso'

94% [+++++++++++++++++++++++++++++++====>   ] 372,277,944 2.12MB/s  eta 8s

Điều này chỉ nên được yêu cầu để tiếp tục tải xuống đã được bắt đầu trong phiên bản trước đó của wget cho các tệp cục bộ mà chúng tôi vẫn đã hoàn thành một phần. Nếu không có -c, quá trình tải xuống sẽ chỉ bắt đầu lại với tệp.1 mới, giữ nguyên tệp chưa hoàn chỉnh hiện có.

9. Tải xuống thử lại không thành công

Chúng tôi có thể chỉ định số lần truyền tệp sẽ thử lại với tùy chọn -t theo sau là số lần thử lại nếu có lỗi. Giá trị mặc định là 20 lần trừ khi gặp phải các lỗi nghiêm trọng như kết nối bị từ chối hoặc không tìm thấy 404.

Trong ví dụ sau, kết nối mạng bị gián đoạn có chủ ý, chúng ta có thể thấy rằng quá trình thử lại diễn ra tự động và wget sẽ tiếp tục thử.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -t 10 https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
--2016-08-31 11:37:47--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 394264576 (376M) [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso.1'

22% [===============================>                                          ] 86,849,288   504KB/s   in 2m 50s

2016-08-31 11:40:37 (500 KB/s) - Connection closed at byte 86849288. Retrying.

--2016-08-31 11:40:38--  (try: 2)  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 394264576 (376M) [application/octet-stream]
Saving to: 'CentOS-7-x86_64-NetInstall-1511.iso.1'

 0% [                                                                          ] 0           --.-K/s   in 0.1s

Không giống như tiếp tục với -c, điều này chỉ hoạt động để thử lại trong phiên bản đang chạy hiện tại của wget, thay vì tiếp tục một phần tệp từ phiên bản trước.

10. Tải xuống từ danh sách tệp URL

Chúng tôi không phải chỉ định URL trong từng lệnh wget riêng lẻ, thay vào đó, chúng tôi có thể sử dụng -i, theo sau là một tệp chứa nhiều URL (một URL trên mỗi dòng) và wget sẽ duyệt qua và tải xuống tất cả.

Mã nguồn [Chọn]
[root@centos7 Downloads]# cat to-download.txt
https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/0_README.txt
https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt

[root@centos7 Downloads]# wget -i to-download.txt
--2016-08-31 12:03:15--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/0_README.txt
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2498 (2.4K) [text/plain]
Saving to: '0_README.txt'

100%[======================================================>] 2,498       --.-K/s   in 0.004s

2016-08-31 12:03:15 (611 KB/s) - '0_README.txt' saved [2498/2498]

--2016-08-31 12:03:15--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Reusing existing connection to mirror.aarnet.edu.au:443.
HTTP request sent, awaiting response... 200 OK
Length: 406 [text/plain]
Saving to: 'md5sum.txt'

100%[======================================================>] 406         --.-K/s   in 0s

2016-08-31 12:03:16 (96.0 MB/s) - 'md5sum.txt' saved [406/406]

FINISHED --2016-08-31 12:03:16--
Total wall clock time: 0.6s
Downloaded: 2 files, 3.4K in 0.02s (207 KB/s)

11. Thời Gian chờ

Theo mặc định, lần thử lại tiếp theo sẽ diễn ra ngay lập tức, tuy nhiên, chúng ta có thể trì hoãn việc này bằng cách chỉ định tùy chọn -w wait, quá trình này sẽ mất vài giây để đợi trước lần thử tiếp theo. Điều này có thể hữu ích nếu máy chủ từ xa chậm hoặc không phản hồi, vì chúng tôi có thể không muốn làm nó quá tải với các lần thử.

Mã nguồn [Chọn]
[root@centos7 Downloads]# time wget -w 10 -i to-download.txt
--2016-08-31 12:06:30--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/0_README.txt
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2498 (2.4K) [text/plain]
Saving to: '0_README.txt'

100%[===============================================================>] 2,498       --.-K/s   in 0s

2016-08-31 12:06:30 (675 MB/s) - '0_README.txt' saved [2498/2498]

--2016-08-31 12:06:40--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Reusing existing connection to mirror.aarnet.edu.au:443.
HTTP request sent, awaiting response... 200 OK
Length: 406 [text/plain]
Saving to: 'md5sum.txt'

100%[===============================================================>] 406         --.-K/s   in 0s

2016-08-31 12:06:40 (143 MB/s) - 'md5sum.txt' saved [406/406]

FINISHED --2016-08-31 12:06:40--
Total wall clock time: 10s
Downloaded: 2 files, 2.8K in 0s (443 MB/s)

real    0m10.337s
user    0m0.020s
sys     0m0.006s

Trong ví dụ này, chúng tôi tải xuống hai tệp với thời gian chờ 10 giây giữa chúng. Chúng ta có thể thấy rằng tổng thời gian thực hiện lệnh chỉ mất hơn 10 giây như mong đợi vì chúng ta đang xử lý các tệp rất nhỏ ở đây. Đầu ra cũng xác nhận rằng tệp đầu tiên đã được tải xuống lúc 12:06:30, trong khi tệp thứ hai bắt đầu tải xuống lúc 12:06:40, tức là 10 giây sau như được chỉ định trong tùy chọn -w của chúng tôi.

Thay vì có thời gian chờ cho mỗi lần tải xuống tệp, thay vào đó, chúng tôi có thể chỉ định chỉ chờ giữa các lần tải xuống không thành công. Điều này được thực hiện với --waitretry theo sau là số giây chờ đợi. Quá trình này có giá trị mặc định là 10 giây và sẽ bắt đầu chờ 1 giây sau lần thất bại đầu tiên, tiếp theo là 2 giây, tăng liên tục cho đến số được chỉ định.

Chúng tôi cũng có thể chỉ định thời gian chờ ngẫu nhiên với --random-wait theo sau là một số giây. Điều này có thể giúp ngăn máy chủ web phát hiện truy xuất tệp liên tục rõ ràng vì các truy cập giờ đây sẽ được chọn ngẫu nhiên.

12. Tải xuống không tương tác

Cho đến bây giờ chúng tôi đã tải xuống với wget ở phía trước. Wget là một trình tải xuống không tương tác, cho phép chúng tôi chạy nó trong nền mà không cần phiên người dùng. Điều này được thực hiện với tùy chọn -b để truyền nền và tạo tệp nhật ký wget với các bản cập nhật khi chúng xảy ra.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -b https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1511.iso
Continuing in background, pid 2789.
Output will be written to 'wget-log'.

[root@centos7 Downloads]# tailf wget-log
 14950K..................................................  3% 1.52M 2m12s
 15000K..................................................  3% 12.5M 2m12s
 15050K..................................................  3% 1.47M 2m12s
 15100K..................................................  3% 1.54M 2m12s
 15150K..................................................  3% 11.5M 2m12s

Như được hiển thị, chuyển wget của chúng tôi được gửi ngay đến nền, trả lại cho chúng tôi bash shell. Sau đó, chúng tôi có thể xem tệp nhật ký wget ghi lại thông tin về trạng thái chuyển.

13. Gửi tin nhắn đến tệp nhật ký

Thay vì xuất thông báo ra màn hình thông qua thiết bị xuất chuẩn/thiết bị xuất chuẩn, chúng ta có thể sử dụng -o để ghi tất cả thông báo vào tệp được chỉ định.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -o /root/wget-log.txt https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
[root@centos7 Downloads]# cat /root/wget-log.txt
--2016-08-31 12:18:26--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 406 [text/plain]
Saving to: 'md5sum.txt.1'

     0K                                                       100% 4.60M=0s

2016-08-31 12:18:27 (4.60 MB/s) - 'md5sum.txt.1' saved [406/406]

Điều quan trọng cần lưu ý là -o sẽ ghi đè lên một tệp hiện có, thay vào đó chúng ta có thể sử dụng -a hoạt động theo cách tương tự, nhưng sẽ nối vào cuối tệp nếu nó đã tồn tại.

14. Ẩn đầu ra

Thay vào đó, nếu chúng ta không muốn có đầu ra, chúng ta có thể sử dụng tùy chọn -q cho chế độ im lặng sẽ ẩn tất cả đầu ra.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -q https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
[root@centos7 Downloads]#

15. Thông tin gỡ lỗi

Có thể thu thập thêm thông tin với tùy chọn gỡ lỗi, -d có thể hữu ích khi khắc phục mọi sự cố.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -d https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
DEBUG output created by Wget 1.14 on linux-gnu.

URI encoding = 'UTF-8'
--2016-08-31 13:31:24--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Caching mirror.aarnet.edu.au => 202.158.214.106 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
Created socket 3.
Releasing 0x0000000002465f50 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 3 to SSL handle 0x000000000247adb0
certificate:
  subject: /1.3.6.1.4.1.311.60.2.1.3=AU/businessCategory=Non-Commercial Entity/
  serialNumber=54 084 540 518/C=AU/ST=New South Wales/L=North Ryde/O=AARNET
  Pty Ltd/OU=Operations/CN=mirror.aarnet.edu.au
  issuer:  /C=BM/O=QuoVadis Limited/CN=QuoVadis EV SSL ICA G1
X509 certificate successfully verified and matches host mirror.aarnet.edu.au

---request begin---
GET /pub/centos/7/isos/x86_64/md5sum.txt HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: mirror.aarnet.edu.au
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Date: Wed, 31 Aug 2016 03:30:16 GMT
Server: ATS/5.2.0
Last-Modified: Thu, 10 Dec 2015 15:37:35 GMT
Accept-Ranges: bytes
Content-Length: 406
Content-Type: text/plain; charset=UTF-8
Age: 96

---response end---
200 OK
Registered socket 3 for persistent reuse.
URI content encoding = 'UTF-8'
Length: 406 [text/plain]
Saving to: 'md5sum.txt.4'

100%[=====================================================>] 406         --.-K/s   in 0s

2016-08-31 13:31:24 (126 MB/s) - 'md5sum.txt.4' saved [406/406]

Ở đây chúng ta có thể thấy tất cả các loại thông tin về chứng chỉ và yêu cầu HTTP.

Theo mặc định, tất cả các yêu cầu wget đều được chạy với tùy chọn -v cho đầu ra dài dòng, tuy nhiên, chúng ta có thể chạy -nv mà không cần dài dòng để cắt giảm đầu ra và chỉ nhận những thông tin cơ bản cần thiết.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -nv https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
2016-08-31 13:33:43 URL:https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt [406/406] -> "md5sum.txt.7" [1]

16. Xem phản hồi của máy chủ

Tương tự, chúng tôi cũng có thể chỉ in các tiêu đề HTTP được gửi bởi máy chủ hoặc các phản hồi được gửi bởi các máy chủ FTP với tùy chọn -S cho các phản hồi của máy chủ, tùy chọn này có thể hữu ích khi khắc phục sự cố vì nó cho phép chúng tôi xem máy chủ từ xa đang nói gì để phản hồi lại các phản hồi của chúng tôi. yêu cầu. Thông tin này cũng có trong nhật ký gỡ lỗi chi tiết hơn nhiều được hiển thị ở trên.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -S https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
--2016-08-31 13:37:00--  https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Resolving mirror.aarnet.edu.au (mirror.aarnet.edu.au)... 202.158.214.106, 2001:388:30bc:cafe::beef
Connecting to mirror.aarnet.edu.au (mirror.aarnet.edu.au)|202.158.214.106|:443... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Wed, 31 Aug 2016 03:37:29 GMT
  Server: ATS/5.2.0
  Last-Modified: Thu, 10 Dec 2015 15:37:35 GMT
  Accept-Ranges: bytes
  Content-Length: 406
  Content-Type: text/plain; charset=UTF-8
  Age: 0
Length: 406 [text/plain]
Saving to: 'md5sum.txt.8'

100%[===================================================================================================================================================>] 406         --.-K/s   in 0s

2016-08-31 13:37:00 (83.8 MB/s) - 'md5sum.txt.8' saved [406/406]

17. Hết giờ

Nếu quá trình tải xuống mất quá nhiều thời gian, chúng tôi có thể hủy bỏ và hủy tự động sau một khoảng thời gian tổng được chỉ định bởi tùy chọn -T, theo sau là số giây chúng tôi muốn hết thời gian chờ sau đó.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -T 30 https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
Thời gian chờ mặc định là 900 giây không hoạt động khi không nhận được dữ liệu trong quá trình tải xuống thường ổn, tuy nhiên, thời gian này có thể được điều chỉnh theo yêu cầu của bạn.

18. Sử dụng thông tin xác thực

Nếu kết nối HTTP hoặc FTP yêu cầu xác thực người dùng, chúng tôi có thể chỉ định tên người dùng bằng tùy chọn --user và mật khẩu bằng tùy chọn --password. Nói chung, không nên sử dụng tùy chọn --password về mặt bảo mật vì mật khẩu được chỉ định của chúng tôi sẽ được lưu trữ trong lịch sử bash. Thay vào đó, chúng tôi có thể sử dụng --ask-password sẽ nhắc nhập mật khẩu, giữ nó ngoài nhật ký lịch sử của chúng tôi.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget --user=username --ask-password http://localhost/file.txt
Password for user 'username':

19. Xác thực proxy

Mặc dù ví dụ trên được sử dụng cho thông tin đăng nhập tại máy chủ từ xa, nhưng chúng tôi cũng có thể chỉ định máy chủ proxy và thông tin đăng nhập proxy tùy chọn nếu chúng tôi có máy chủ proxy trong mạng mà chúng tôi cần xác thực trước khi được phép ủy quyền qua nó.

Điều này được thực hiện bằng cách trước tiên đặt các biến môi trường http_proxy, https_proxy hoặc ftp_proxy để wget biết nơi có thể tìm thấy máy chủ proxy.

Mã nguồn [Chọn]
[root@centos7 Downloads]# http_proxy=http://proxy.example.com:3128
[root@centos7 Downloads]# https_proxy=http://proxy.example.com:3128
[root@centos7 Downloads]# echo $http_proxy
http://proxy.example.com:3128
[root@centos7 Downloads]# echo $https_proxy
http://proxy.example.com:3128

Bây giờ wget sẽ biết proxy được chỉ định.

Nếu proxy yêu cầu xác thực người dùng thì chúng tôi có thể chỉ định các tùy chọn --proxy-user và --proxy-password để xác thực và tiếp tục.

20. Tải xuống tệp không được lưu trong bộ nhớ cache

Trong yêu cầu HTTP, chúng tôi có thể chỉ định --no-cache sẽ gửi các tùy chọn 'Pragma: no-cache' và 'Cache-Control: no-cache, must-revalidate' tới máy chủ web, yêu cầu phiên bản không được lưu trong bộ nhớ cache có thể sẽ hữu ích nếu bạn muốn tải xuống phiên bản cập nhật nhất của tệp và bỏ qua bộ đệm. Theo mặc định, việc chấp nhận các tệp được lưu trong bộ nhớ cache được cho phép.

Với việc sử dụng -d, chúng ta có thể thấy yêu cầu HTTP chứa 'Pragma: no-cache' và 'Cache-Control: no-cache, must-validate' chỉ sau khi thêm --no-cache.

Mã nguồn [Chọn]
[root@centos7 Downloads]# wget -d https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
...
---request begin---
GET /pub/centos/7/isos/x86_64/md5sum.txt HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: mirror.aarnet.edu.au
Connection: Keep-Alive
---request end---

[root@centos7 Downloads]# wget -d --no-cache https://mirror.aarnet.edu.au/pub/centos/7/isos/x86_64/md5sum.txt
...
---request begin---
GET /pub/centos/7/isos/x86_64/md5sum.txt HTTP/1.1
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: mirror.aarnet.edu.au
Connection: Keep-Alive
---request end---

Chúng ta đã thấy rằng mặc dù lệnh wget có thể được sử dụng để tải một tệp từ xa xuống hệ thống Linux cục bộ, nhưng nó cũng có nhiều tính năng nâng cao khác khiến nó trở thành một lệnh rất mạnh đáng để học hỏi.