10 ví dụ về lệnh để giúp bạn khắc phục sự cố

Một trong những tiện ích thường xuyên được sử dụng bởi sysadmin là wget. Nó có thể rất tiện dụng trong quá trình xử lý sự cố liên quan đến web.


Lệnh wget là gì?

Lệnh wget là một tiện ích dòng lệnh Unix / Linux phổ biến để tìm nạp nội dung từ web. Nó là miễn phí để sử dụng và cung cấp một cách không tương tác để tải xuống các tệp từ web. Lệnh wget hỗ trợ các giao thức HTTPS, HTTP và FTP ra khỏi hộp. Hơn nữa, bạn cũng có thể sử dụng proxy HTTP với nó.

Làm thế nào nó giúp bạn khắc phục sự cố?

Có rất nhiều cách.

Là một sysadmin, hầu hết thời gian, bạn sẽ làm việc trên một thiết bị đầu cuối và khi khắc phục sự cố liên quan đến ứng dụng web, bạn có thể không muốn kiểm tra toàn bộ trang mà chỉ là kết nối. Hoặc, bạn muốn xác minh các trang web mạng nội bộ. Hoặc, bạn muốn tải xuống một trang nhất định để xác minh nội dung.

wget là không tương tác, có nghĩa là bạn có thể chạy nó trong nền ngay cả khi bạn đã đăng xuất. Có thể có nhiều trường hợp bạn cần ngắt kết nối với hệ thống ngay cả khi thực hiện truy xuất tệp từ web. Trong nền, wget sẽ chạy và hoàn thành công việc được giao.

Nó cũng có thể được sử dụng để có được toàn bộ trang web trên các máy cục bộ của bạn. Nó có thể theo liên kết trong XHTML và HTML trang để tạo một phiên bản địa phương. Để làm như vậy, nó phải tải trang đệ quy. Điều này rất hữu ích vì bạn có thể sử dụng nó để tải xuống các trang hoặc trang web quan trọng để xem ngoại tuyến.

Hãy cùng xem chúng trong hành động. Cú pháp của wget như dưới đây.

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

Tải xuống một trang web

Hãy để thử tải xuống một trang. Vd: github.com

wget github.com

Nếu kết nối tốt, nó sẽ tải xuống trang chủ và hiển thị đầu ra như bên dưới.

[email được bảo vệ]: ~ # wget github.com
URL được chuyển đổi thành HTTPS do chính sách HSTS
–2020-2-23 10: 45: 52– https://github.com/
Đang giải quyết github.com (github.com) … 140.82.118.3
Đang kết nối với github.com (github.com) | 140.82.118.3 |: 443 … đã kết nối.
Yêu cầu HTTP được gửi, đang chờ phản hồi … 200 OK
Độ dài: không xác định [văn bản / html]
Lưu vào: ‘index.html

index.html [ <= => ] 131,96K –.- KB / s trong 0,04 giây

2020 / 02-23 10:45:52 (2,89 MB / s) – ‘index.html đã lưu [135126]

[email được bảo vệ]: ~ #

Tải xuống nhiều tập tin

Tiện dụng khi bạn phải tải xuống nhiều tập tin cùng một lúc. Điều này có thể cho bạn ý tưởng về việc tự động tải xuống các tệp thông qua một số tập lệnh.

Hãy để thử tải xuống các tệp Python 3.8.1 và 3.5.1.

wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz https://www.python.org/ftp/python/3.5.1/Python-3.5.1. tgz

Vì vậy, như bạn có thể đoán, cú pháp như dưới đây.

wget URL1 URL2 URL3

Bạn chỉ cần đảm bảo cung cấp không gian giữa các URL.

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

Sẽ hữu ích khi bạn muốn kiểm tra xem tệp của bạn mất bao nhiêu thời gian để tải xuống ở các băng thông khác nhau.

Sử dụng tùy chọn –limit-Rate, bạn có thể giới hạn tốc độ tải xuống.

Đây là đầu ra của việc tải xuống tệp Nodejs.

[email được bảo vệ]: ~ # wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
–2020-2-23 10: 59: 58– https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Đang giải quyết nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Đang kết nối với nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … đã kết nối.
Yêu cầu HTTP được gửi, đang chờ phản hồi … 200 OK
Độ dài: 14591852 (14M) [ứng dụng / x-xz]
Lưu vào: ‘node-v12.16.1-linux-x64.tar.xz,

nút-v12.16.1-linux-x64.tar.xz 100% [================================== ================================================== =======>] 13,92M –.- KB / s trong 0,05 giây

2020-02-23 10:59:58 (272 MB / s) – ‘nút-v12.16.1-linux-x64.tar.xz đã lưu [14591852/14591852]

Phải mất 0,05 giây để tải xuống 13,92 MB tệp. Bây giờ, hãy để Lôi cố gắng giới hạn tốc độ xuống còn 500K.

[email được bảo vệ]: ~ # wget –limit-Rate = 500k https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
–2020-02-23 11: 00: 18– https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Đang giải quyết nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Đang kết nối với nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … đã kết nối.
Yêu cầu HTTP được gửi, đang chờ phản hồi … 200 OK
Độ dài: 14591852 (14M) [ứng dụng / x-xz]
Lưu vào: ‘node-v12.16.1-linux-x64.tar.xz.1.

nút-v12.16.1-linux-x64.tar.xz.1 100% [================================ ================================================== =========>] 13,92M 501KB / giây trong 28 giây

2020-02-23 11:00:46 (500 KB / s) – ‘nút-v12.16.1-linux-x64.tar.xz.1 đã lưu [14591852/14591852]

Giảm băng thông mất nhiều thời gian hơn để tải xuống – 28 giây. Hãy tưởng tượng, người dùng của bạn đang phàn nàn về việc tải xuống chậm và bạn biết rằng băng thông mạng của họ thấp. Bạn có thể nhanh chóng thử –limit-Rate để mô phỏng vấn đề.

Tải về trong nền

Tải xuống các tệp lớn có thể mất thời gian hoặc ví dụ ở trên mà bạn muốn đặt giới hạn tốc độ là tốt. Điều này được mong đợi, nhưng nếu bạn không muốn nhìn chằm chằm vào thiết bị đầu cuối của bạn?

Chà, bạn có thể sử dụng đối số -b để bắt đầu wget trong nền.

[email được bảo vệ]: ~ # wget -b https://slack.com
Tiếp tục trong nền, pid 25430.
Đầu ra sẽ được ghi vào ‘wget-log.1..
[email được bảo vệ]: ~ #

Bỏ qua lỗi chứng chỉ

Điều này rất hữu ích khi bạn cần kiểm tra các ứng dụng web mạng nội bộ mà don Kiếm có chứng chỉ phù hợp. Theo mặc định, wget sẽ đưa ra lỗi khi chứng chỉ không hợp lệ.

[email được bảo vệ]: ~ # wget https://Exired.badssl.com/
–2020-02-23 11: 24: 59– https://Exired.badssl.com/
Đang giải quyết hết hạn.badssl.com (hết hạn.badssl.com) … 104.154.89.105
Đang kết nối với expired.badssl.com (đã hết hạn.badssl.com) | 104.154.89.105 |: 443 … đã kết nối.
LRI: không thể xác minh giấy chứng nhận đã hết hạn.badssl.com, được cấp bởi ‘CN = COMODO RSA Xác thực tên miền Máy chủ bảo mật CA, O = COMODO CA Limited, L = Salford, ST = Greater Manchester, C = GB.
Giấy chứng nhận đã hết hạn.
Để kết nối với expired.badssl.com không an toàn, hãy sử dụng `–no-check-cert ‘.

Ví dụ trên dành cho URL nơi chứng chỉ hết hạn. Như bạn có thể thấy nó đã được đề xuất bằng cách sử dụng –no-check-cert, nó sẽ bỏ qua mọi xác nhận chứng chỉ.

[email được bảo vệ]: ~ # wget https://untrusty-root.badssl.com/ –no-check-chứng chỉ
–2020-02-23 11: 33: 45– https://untrusty-root.badssl.com/
Giải quyết không đáng tin cậy-root.badssl.com (không đáng tin cậy-root.badssl.com) … 104.154.89.105
Đang kết nối với unsrusty-root.badssl.com (không tin cậy-root.badssl.com) | 104.154.89.105 |: 443 … đã kết nối.
CẢNH BÁO: không thể xác minh chứng chỉ không đáng tin cậy của root.badssl.com, được cấp bởi ‘CN = BadSSL Cơ quan cấp chứng chỉ gốc không tin cậy, O = BadSSL, L = San Francisco, ST = California, C = US.
Chứng nhận tự ký gặp phải.
Yêu cầu HTTP được gửi, đang chờ phản hồi … 200 OK
Độ dài: 600 [văn bản / html]
Lưu vào: ‘index.html.6.

index.html.6 100% [========================================== =================================================>] 600 –.- KB / s trong 0 giây

2020-02-23 11:33:45 (122 MB / s) – ‘index.html.6 đã lưu [600/600]

[email được bảo vệ]: ~ #

Thật tuyệt, không phải là nó?

Tiêu đề phản hồi HTTP

Xem tiêu đề phản hồi HTTP của một trang web nhất định trên thiết bị đầu cuối.

Sử dụng -S sẽ in tiêu đề, như bạn có thể thấy bên dưới cho Coursera.

[email được bảo vệ]: ~ # wget https://www.coursera.org -S
–2020-02-23 11: 47: 01– https://www.coursera.org/
Giải quyết www.coursera.org (www.coursera.org) … 13.224.241.48, 13.224.241.124, 13.224.241.82, …
Kết nối với www.coursera.org (www.coursera.org) | 13.224.241.48 |: 443 … đã kết nối.
Yêu cầu HTTP được gửi, đang chờ phản hồi…
HTTP / 1.1 200 OK
Loại nội dung: văn bản / html
Độ dài nội dung: 511551
Kết nối: giữ mạng
Kiểm soát bộ đệm: riêng tư, không có bộ đệm, không lưu trữ, phải xác nhận lại, max-age = 0
Ngày: CN, 23 tháng 2 năm 2020 11:47:01 GMT
etag: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Máy chủ: phái viên
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Tuổi tối đa = 864000; Hết hạn = Thứ tư, 04 tháng 3 năm 2020 11:47:02 GMT; Đường dẫn = /; Tên miền = .coursera.org
Đặt-Cookie: __204u = 9205355775-1582458421174; Tuổi tối đa = 31536000; Hết hạn = Thứ Hai, ngày 22 tháng 2 năm 2021 11:47:02 GMT; Đường dẫn = /; Tên miền = .coursera.org
Strict-Transport-Security: max-age = 31536000; bao gồm các tên miền; tải trước
Tùy chọn loại nội dung X: nosniff
x-coursera-render-mode: html
phiên bản x-coursera-render: v2
X-Coursera-Yêu cầu-Id: NCnPPlYyEeqfcxIHPk5Gqw
X-Coursera-Dấu vết-Id-Hex: a5ef7028d77ae8f8
x-envoy-thượng nguồn-dịch vụ-thời gian: 1090
Tùy chọn khung X: SAMEORIGIN
x-Powered-by: Express
X-XSS-Bảo vệ: 1; chế độ = khối
X-Cache: Hoa hậu từ đám mây
Qua: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Độ dài: 511551 (500K) [văn bản / html]

Thao tác với tác nhân người dùng

Có thể xảy ra trường hợp bạn muốn kết nối một trang web bằng tác nhân người dùng tùy chỉnh. Hoặc trình duyệt cụ thể của người dùng-tác nhân. Điều này có thể thực hiện được bằng cách chỉ định –user-agent. Ví dụ dưới đây dành cho tác nhân người dùng là MyCustomUserAgent.

[email được bảo vệ]: ~ # wget https://gf.dev –user-agent ="MyCustomUserAgent"

Tiêu đề máy chủ

Khi một ứng dụng vẫn đang được phát triển, bạn có thể không có một URL thích hợp để kiểm tra nó. Hoặc, bạn có thể muốn kiểm tra một cá thể HTTP riêng lẻ bằng IP, nhưng bạn cần cung cấp tiêu đề máy chủ để ứng dụng hoạt động chính xác. Trong tình huống này, –header sẽ hữu ích.

Hãy lấy ví dụ về thử nghiệm http://10.10.10.1 với tiêu đề máy chủ là application.com

wget – tiêu đề ="Máy chủ: application.com" http://10.10.10.1

Không chỉ lưu trữ, mà bạn có thể tiêm bất kỳ tiêu đề nào bạn thích.

Kết nối bằng Proxy

Nếu bạn đang làm việc trên môi trường DMZ, bạn có thể không có quyền truy cập vào các trang web Internet. Nhưng bạn có thể tận dụng proxy để kết nối.

wget -e use_proxy = yes http_proxy = $ PROXYHOST: PORT http://externalsite.com

Đừng quên cập nhật $ PROXYHOST: biến PORT với biến thực tế.

Kết nối bằng giao thức TLS cụ thể

Thông thường, tôi khuyên bạn nên sử dụng OpenSSL để kiểm tra giao thức TLS. Nhưng, bạn cũng có thể sử dụng wget.

wget –secure-Protocol = TLSv1_2 https://example.com

Ở trên sẽ buộc wget kết nối qua TLS 1.2.

Phần kết luận

Biết các lệnh cần thiết có thể giúp bạn trong công việc. Tôi hy vọng những điều trên cho bạn ý tưởng về những gì bạn có thể làm với wget.

THẺ

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map