10 примеров использования консольной программы wget

10 примеров использования консольной программы wget

Wget – свободная утилита, предоставляющая неинтерактивный способ загрузки файлов из интернета по HTTPS, HTTP, FTP и даже HTTP-прокси.

Вы можете запустить wget в фоновом режиме, а он доделает всю назначенную работу. Обычно утилиту используют для получения всего веб-сайта, перехода по ссылкам на страницах XHTML/HTML и создания локальной версии сайта. Синтаксис wget выглядит так:

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

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

Круто, если можно загрузить сразу несколько файлов. Это, кстати, идея для написания какого-нибудь скрипта для автоматизации загрузки файлов, подумайте на досуге.

Попробуем скачать архивы с Python 3.8.1 и 3.5.1:

Как вы уже догадались, синтаксис такой:

Не забывайте про пробел между ссылками!

Ограничить скорость загрузки полезно, когда стоит задача проверить, сколько времени занимает загрузка файла на разной пропускной способности.

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

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

Потребовалось 0.05 с, чтобы скачать 13.92 Мб. Теперь попробуем ограничить скорость до 500 Кб/с:

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

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

Можно использовать ключ -b , чтобы запустить wget в фоновом режиме:

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

На примере выше результат истекшего срока действия сертификата. Предлагается использовать —no-check-certificate для игнорирования любой проверки сертификата. Сравним результат с добавленным ключом:

С помощью ключа -S в терминал будет выведен заголовок, как это произошло с Яндексом:

Бывает так, что мы хотим открыть сайт с помощью другого user-agent . Это можно сделать, указав ключ —user-agent :

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

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

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

Не забудьте в переменной $PROXYHOST:PORT указать реальные значения.

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

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

Если вам интересно подробнее разобраться в утилите, имеется перевод документации wget на русский. В некоторых случаях хорошей альтернативой wget является cURL, а для создания зеркал сайтов (чего cURL не умеет) обычно используется rsync.