10 примеров команд wget, которые помогут вам устранить неполадки

Одна из часто используемых утилит sysadmin – это wget. Это может быть очень удобно при поиске и устранении неисправностей в Интернете..


Что такое команда wget??

Команда wget – это популярная утилита командной строки Unix / Linux для извлечения контента из Интернета. Он бесплатен для использования и предоставляет неинтерактивный способ загрузки файлов из Интернета. Команда wget поддерживает протоколы HTTPS, HTTP и FTP из коробки. Кроме того, вы также можете использовать HTTP прокси с ним.

Как это поможет вам устранить неполадки?

Есть много способов.

Как системный администратор, большую часть времени вы будете работать с терминалом, а при устранении неполадок, связанных с веб-приложением, вы можете не захотеть проверять всю страницу, а только возможность подключения. Или вы хотите проверить интранет-сайты. Или вы хотите загрузить определенную страницу, чтобы проверить содержимое.

wget неинтерактивен, что означает, что вы можете запускать его в фоновом режиме, даже если вы вышли из системы. Может быть много случаев, когда вам необходимо отключиться от системы даже при поиске файлов из Интернета. В фоновом режиме, wget запустится и завершит назначенную работу.

Он также может быть использован для получения всего сайта на ваших локальных компьютерах. Можно переходить по ссылкам в XHTML и HTML страницы для создания локальной версии. Для этого необходимо загрузить страницу рекурсивно. Это очень полезно, так как вы можете использовать его для загрузки важных страниц или сайтов для просмотра в автономном режиме.

Давайте посмотрим на них в действии. Синтаксис wget как ниже.

wget [опция] [URL]

Скачать веб-страницу

Попробуем скачать страницу. Пример: github.com

wget github.com

Если связь в порядке, он загрузит домашнюю страницу и покажет вывод, как показано ниже.

[Электронная почта защищена]: ~ # wget github.com
URL преобразован в HTTPS из-за политики HSTS
–2020-02-23 10: 45: 52– https://github.com/
Разрешение github.com (github.com) … 140.82.118.3
Подключение к github.com (github.com) | 140.82.118.3 |: 443 … подключено.
HTTP-запрос отправлен, ожидание ответа … 200 OK
Длина: не указано [текст / html]
Сохранение в: «index.html»

index.html [ <знак равно> ] 131,96K –.- КБ / с за 0,04 с

2020-02-23 10:45:52 (2,89 МБ / с) – файл index.html сохранен [135126]

[Электронная почта защищена]: ~ #

Скачать несколько файлов

Удобно, когда вам нужно скачать несколько файлов одновременно. Это может дать вам представление об автоматизации загрузки файлов с помощью некоторых скриптов..

Попробуем скачать файлы Python 3.8.1 и 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

Итак, как вы можете догадаться, синтаксис такой, как показано ниже.

wget URL1 URL2 URL3

Вы просто должны обеспечить пространство между URL.

Ограничить скорость загрузки

Было бы полезно, если вы хотите проверить, сколько времени занимает загрузка файла с другой пропускной способностью..

Используя опцию –limit-rate, вы можете ограничить скорость загрузки.

Вот результат загрузки файла Nodejs.

[Электронная почта защищена]: ~ # wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
–2020-02-23 10: 59: 58– https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
Разрешение nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Подключение к nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … подключено.
HTTP-запрос отправлен, ожидание ответа … 200 OK
Длина: 14591852 (14M) [приложение / x-xz]
Сохранение в: «node-v12.16.1-linux-x64.tar.xz»

node-v12.16.1-linux-x64.tar.xz 100% [================================= ================================================== =======>] 13,92M –.- КБ / с за 0,05 с

2020-02-23 10:59:58 (272 МБ / с) – «node-v12.16.1-linux-x64.tar.xz» сохранен [14591852/14591852]

Загрузка файлов объемом 13,92 МБ заняла 0,05 секунды. Теперь давайте попробуем ограничить скорость до 500К.

[Электронная почта защищена]: ~ # 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
Разрешение nodejs.org (nodejs.org) … 104.20.23.46, 104.20.22.46, 2606: 4700: 10 :: 6814: 162e, …
Подключение к nodejs.org (nodejs.org) | 104.20.23.46 |: 443 … подключено.
HTTP-запрос отправлен, ожидание ответа … 200 OK
Длина: 14591852 (14M) [приложение / x-xz]
Сохранение в: «node-v12.16.1-linux-x64.tar.xz.1»

node-v12.16.1-linux-x64.tar.xz.1 100% [=============================== ================================================== =========>] 13,92 млн. 501 КБ / с за 28 с

2020-02-23 11:00:46 (500 КБ / с) – «node-v12.16.1-linux-x64.tar.xz.1» сохранен [14591852/14591852]

Уменьшение полосы пропускания заняло больше времени – 28 секунд. Представьте, ваши пользователи жалуются на медленную загрузку, и вы знаете, что их пропускная способность сети низкая. Вы можете быстро попробовать –limit-rate для имитации проблемы.

Скачать в фоновом режиме

Загрузка больших файлов может занять некоторое время или приведенный выше пример, где вы также хотите установить ограничение скорости. Это ожидается, но что, если вы не хотите смотреть на свой терминал?

Ну, вы можете использовать аргумент -b, чтобы запустить wget в фоновом режиме.

[Электронная почта защищена]: ~ # wget -b https://slack.com
Продолжая в фоновом режиме, пид 25430.
Вывод будет записан в «wget-log.1».
[Электронная почта защищена]: ~ #

Игнорировать ошибку сертификата

Это удобно, когда вам нужно проверить веб-приложения интрасети, которые не имеют надлежащего сертификата. По умолчанию wget выдаст ошибку, когда сертификат недействителен.

[Электронная почта защищена]: ~ # wget https://expired.badssl.com/
–2020-02-23 11: 24: 59– https://expired.badssl.com/
Разрешение expired.badssl.com (expired.badssl.com) … 104.154.89.105
Подключение к expired.badssl.com (expired.badssl.com) | 104.154.89.105 |: 443 … подключено.
ОШИБКА: невозможно проверить сертификат expired.badssl.com, выданный ‘CN = COMODO RSA Безопасный сервер проверки домена, O = COMODO CA Limited, L = Солфорд, ST = Большой Манчестер, C = ГБ:
Срок действия выданного сертификата истек.
Для небезопасного подключения к expired.badssl.com используйте `–no-check-certificate ‘.

Приведенный выше пример относится к URL-адресу, срок действия которого истек. Как вы можете видеть, он предложил использовать –no-check-Certificate, который будет игнорировать любую проверку сертификата..

[Электронная почта защищена]: ~ # wget https://untrusted-root.badssl.com/ –no-check-certificate
–2020-02-23 11: 33: 45– https://untrusted-root.badssl.com/
Разрешение untrusted-root.badssl.com (untrusted-root.badssl.com) … 104.154.89.105
Подключение к untrusted-root.badssl.com (untrusted-root.badssl.com) | 104.154.89.105 |: 443 … подключено.
ВНИМАНИЕ: невозможно проверить сертификат untrusted-root.badssl.com, выданный ‘CN = BadSSL Untrusted Root Certificate Authority, O = BadSSL, L = Сан-Франциско, ST = Калифорния, C = США ‘:
Самоподписанный сертификат обнаружен.
HTTP-запрос отправлен, ожидание ответа … 200 OK
Длина: 600 [текст / HTML]
Сохранение в: «index.html.6»

index.html.6 100% [=============================================== =================================================>] 600 – .- КБ / с в 0с

2020-02-23 11:33:45 (122 МБ / с) – файл index.html.6 сохранен [600/600]

[Электронная почта защищена]: ~ #

Круто, не правда ли??

Заголовок ответа HTTP

Смотрите заголовок ответа HTTP данного сайта на терминале.

Использование -S напечатает заголовок, как вы можете видеть ниже для Coursera.

[Электронная почта защищена]: ~ # wget https://www.coursera.org -S
–2020-02-23 11: 47: 01– https://www.coursera.org/
Разрешение www.coursera.org (www.coursera.org) … 13.224.241.48, 13.224.241.124, 13.224.241.82, …
Подключение к www.coursera.org (www.coursera.org) | 13.224.241.48 |: 443 … подключено.
HTTP-запрос отправлен в ожидании ответа…
HTTP / 1.1 200 ОК
Тип контента: текст / HTML
Длина контента: 511551
Подключение: keep-alive
Cache-Control: приватный, без кеша, без хранилища, обязательно повторная проверка, max-age = 0
Дата: Солнце, 23 февраля 2020 11:47:01 GMT
Этаг: W /"7156d-WcZHnHFl4b4aDOL4ZSrXP0iBX3o"
Сервер: посланник
Set-Cookie: CSRF3-Token = 1583322421.s1b4QL6OXSUGHnRI; Max-Age = 864000; Истекает = ср, 04 марта 2020 11:47:02 GMT; Path = /; Домен = .coursera.org
Set-Cookie: __204u = 9205355775-1582458421174; Max-Age = 31536000; Истекает = понедельник, 22 февраля 2021 11:47:02 GMT; Path = /; Домен = .coursera.org
Строгая транспортная безопасность: максимальный возраст = 31536000; IncludeSubdomains; предварительная нагрузка
X-Content-Type-Options: nosniff
x-coursera-render-mode: html
x-coursera-render-version: v2
X-Coursera-Request-Id: NCnPPlYyEeqfcxIHPk5Gqw
X-Coursera-Trace-Id-Hex: a5ef7028d77ae8f8
x-envoy-upstream-service-time: 1090
X-Frame-Options: SAMEORIGIN
x-powered-by: Express
X-XSS-защита: 1; Режим = Блок
X-Cache: мисс из облачного фронта
Через: 1.1 884d101a3faeefd4fb32a5d2a8a076b7.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: LHR62-C3
X-Amz-Cf-Id: vqvX6ZUQgtZAde62t7qjafIAqHXQ8BLAv8UhkPHwyTMpvH617yeIbQ ==
Длина: 511551 (500 КБ) [текст / html]

Манипулировать User-Agent

Может возникнуть ситуация, когда вы захотите подключить сайт с помощью пользовательского агента пользователя. Или определенный пользовательский агент браузера. Это можно сделать, указав –user-agent. Приведенный ниже пример для пользовательского агента как MyCustomUserAgent.

[Электронная почта защищена]: ~ # wget https://gf.dev –user-agent ="MyCustomUserAgent"

Заголовок хоста

Когда приложение все еще находится в разработке, у вас может не быть правильного URL для его тестирования. Или, возможно, вы захотите протестировать отдельный экземпляр HTTP, используя IP, но вам нужно предоставить заголовок хоста для правильной работы приложения. В этой ситуации полезен –header.

Давайте рассмотрим пример тестирования http://10.10.10.1 с заголовком узла как application.com

wget –header ="Хост: application.com" http://10.10.10.1

Не только хост, но вы можете вставить любой заголовок, который вам нравится.

Подключение через прокси

Если вы работаете в среде DMZ, у вас может не быть доступа к интернет-сайтам. Но вы можете воспользоваться прокси для подключения.

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

Не забудьте обновить переменную $ PROXYHOST: PORT фактическими.

Подключение с использованием определенного протокола TLS

Обычно я бы рекомендовал использовать OpenSSL для тестирования протокола TLS. Но вы также можете использовать wget.

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

Вышеуказанное заставит wget подключиться через TLS 1.2.

Вывод

Знание необходимой команды может помочь вам на работе. Я надеюсь, что вышеизложенное дает вам представление о том, что вы можете сделать с помощью wget.

TAGS:

  • 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