Ubuntu. Использование команды Wget
В этой статье будет рассмотрен процесс использования консольной утилиты wget с наиболее распространенными опциями.
Что такое Wget
Wget — консольная программа для загрузки файлов из интернета, позволяющая скачивать файлы по протоколам HTTP, HTTPS и FTP.
Большое количество опций этой утилиты позволяет скачивать несколько файлов одновременно, возобновлять загрузки, ограничивать скорость скачивания, загружать файлы в фоновом режиме, делать оффлайновое зеркало страниц какого-либо сайта и многое другое.
Установка Wget
В большинстве дистрибутивов Linux пакет wget предустановлен по умолчанию.
Но если wget отсутствует в системе, то его можно загрузить при помощи менеджера пакетов.
Установка Wget в Ubuntu и Debian
sudo apt-get install wget
Установка Wget в CentOS и Fedora
sudo yum install wget
Синтаксис команд для Wget
Перед началом использования консольной утилиты wget стоит ознакомиться с используемым ей форматом команд.
Ubuntu. Как загрузить сайт целиком? Программа wget
В общем случае синтаксис команд для wget выглядит так:
wget [options] [url]
где «options» — дополнительные опции, а «url» — ссылка на файл или директорию, которую вы хотите скачать.
Как скачать файл при помощи Wget
Простейший вариант использования wget — скачивание файла в текущую директорию без всяких опций.
В качестве примера рассмотрим команду для скачивания архива с ядром Linux:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz
При ее использовании wget определяет сопоставляет домен с IP-адресом сервера, подключается к этому серверу и начинает загрузку данных.
В процессе загрузки в консоли будет отображаться строка состояния с именем файла и его размером, скоростью скачивания и примерным подсчетом времени до окончания загрузки. После окончания загрузки скачанный файл можно будет найти в той директории, которая была активна на момент ввода команды.
Чтобы не выводить всю эту информацию в консоль можно запустить wget с опцией -q:
wget -q https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz
А если файл с таким именем уже существует, то wget сохранит его копию, добавив после оригинального названия цифровой номер.
Как сохранить скачиваемый файл под другим именем
Для того, чтобы автоматически сохранить скачиваемый файл под другим названием можно воспользоваться опцией -O, указав после нее желаемое имя файла:
wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip
В данном примере с GitHub скачивается архив с движком Hugo (master.zip) и сохраняется на компьютере под названием latest-hugo.zip
Как скачать файл в определенную директорию
По умолчанию wget сохраняет скачиваемый файл в текущую активную директорию. Чтобы сохранить файл по другому пути можно воспользоваться опцией -P, указав после нее место для сохранения:
wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
В данном примере файл с образом дистрибутива CentOS 7 будет скачан в директорию /mnt/iso/.
Офигенная програмулька WGET помогает выкачивать тысячи фоток за пару минуток
Как ограничить скорость скачивания
Для ограничения скорости загрузки можно воспользоваться опцией —limit-rate (обратите внимание: два дефиса в начале), указав предел допустимой скорости в байтах, килобайтах (суффикс k) или мегабайтах (суффикс m):
wget —limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
wget —limit-rate=1024k https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
В вышеприведенных примерах скорость загрузки будет ограничена до 1 мегабайта или 1024 килобайт в секунду.
Как возобновить загрузку
Если при помощи wget загружался крупный файл, но соединение прервалось, то можно продолжить его загрузку при помощи опции -c вместо того, чтобы начинать загружать с самого начала:
wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Однако, при этом необходимо чтобы сам сервер поддерживал возможность возобновления загрузки. В ином случае wget начнет загрузку с начала и перезапишет имеющийся файл.
Как скачивать файлы в фоне
Чтобы загрузить файл в фоновом режиме можно воспользоваться опцией -b:
wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso
Это полезно если вы загружаете какой-то крупный файл и во время его загрузки хотите продолжать пользоваться консолью.
Как изменить User-Agent при скачивании
В некоторых случаях удаленный сервер может блокировать доступ для нестандартных User-Agent, используемых ботами или утилитами вроде wget.
Как быть в таких ситуациях? Эмулировать User-Agent какого-нибудь распространенного браузера при помощи опции -U:
wget —user-agent=»Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0″ http://wget-forbidden.com/
В примере выше wget будет скачивать содержимое сайта http://wget-forbidden.com/, эмулируя браузер Firefox 60.
Как скачивать сразу несколько файлов
Для одновременной загрузки нескольких файлов можно воспользоваться опцией -i и задать путь к текстовому файлу со списку URL для загрузки:
wget -i linux-distros.txt
Содержимое файла linux-distros.txt может выглядеть следующим образом:
http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso
Каждый URL в списке должен начинаться с новой строки.
Как скачивать файлы по FTP
Для скачивания файлов с требующего авторизации FTP-сервера нужно указать свой логин и пароль:
wget —ftp-user=ВАШ_ЛОГИН —ftp-password=ВАШ_ПАРОЛЬ ftp://ftp.example.com/filename.tar.gz
Как скачать сайт при помощи Wget
Для создания зеркала веб-сайта можно использовать wget с опцией -m. При этом будет создана локальная копия вебсайта со всем его содержимым, включая картинки:
wget -m https://example.com
Если скачиваемый веб-сайт планируется использовать для локального просмотра, то стоит добавить несколько дополнительных аргументов:
wget -m -k -p https://example.com
Опция -k нужна для того, чтобы wget автоматически сконвертировал все гиперссылки в загружаемых HTML-файлах для их работоспособности оффлайн. А опция -p включает в список объектов для скачивания необходимые для правильного отображения сайта ресурсы, вроде скриптов (JavaScript) и таблиц стилей CSS.
Как пропустить проверку SSL-сертификата
Если нужно скачать файл по HTTPS-протоколу с ресурса, обладающего некорректным SSL-сертификатом (распространенный пример — владелец поставил вручную бесплатный сертификат от Let’s Encrypt и забыл продлить его спустя три месяца), то можно воспользоваться опцией —no-check-certificate (опять-таки, два дефиса в начале):
wget —no-check-certificate https://invalid-ssl-website.com
Заключение
Несмотря на кажущуюся незамысловатость, wget — довольно навороченная утилита.
В данной статье были рассмотрены наиболее распространенные сценарии ее использования для скачивания нескольких файлов одновременно, возобновления сбойных загрузок и созданий локальных зеркал веб-сайтов.
Если этого недостаточно — можно ознакомиться с официальным руководством по Wget.
Источник: dmitrysnotes.ru
Как использовать команду Wget с примерами
Wget — это бесплатная утилита командной строки GNU, используемая для загрузки файлов из Интернета. Она извлекает файлы с использованием протоколов HTTP, HTTPS и FTP.
Если во время загрузки возникает проблема с сетью, это полезное программное обеспечение может возобновить получение файлов, не начиная с нуля.
Другим важным аспектом является возможность рекурсивной загрузки, с помощью которой она может копировать веб-сайты переходя по ссылкам и структуре каталогов и создавая локальные версии веб-страниц.
Команда wget очень гибкая и может использоваться в терминалах, скриптах и cron-задачах. Во время загрузки пользователю не обязательно быть активным или авторизованным. Поскольку wget может работать независимо в фоновом режиме.
Как проверить, установлен ли wget?
Скорее всего, пакет wget уже есть в вашей системе, так как сейчас он предустановлен в большинстве дистрибутивов Linux.
Чтобы проверить, откройте окно терминала и введите:
wget
Если у вас установлен wget, вы увидите сообщение, что команде wget не хватает URL-адреса, как показано на изображении ниже:
Если в выводе отображается команда wget command not found , вам необходимо загрузить и установить инструмент вручную. Ниже вы найдете инструкции по установке для Ubuntu / Debian, CentOS и Windows.
Как установить wget на Ubuntu / Debian?
Чтобы установить wget в системах Ubuntu или Debian, используйте команду:
sudo apt-get install wget
Как установить wget на CentOS / Fedora?
Чтобы установить wget на CentOS или Fedora, введите следующую команду:
sudo yum install wget
Синтаксис wget
Синтаксис wget имеет следующий шаблон:
wget [option][URL]
Каждая [option] имеет свою длинную и короткую форму, которые удобно заменять. Этот атрибут указывает, что делать со следующим URL-адресом.
[URL] — это адрес файла или каталога, который вы хотите загрузить.
Список основных команд wget
- -V(—version) — выводит версию программы
- -h (—help) — выводит справку
- -b(—background) — работать в фоновом режиме
- -o(—out-file) — указывает лог файл
- -d(—debug) — включает режим отладки
- -v (—verbose) — выводит максимум информации о работе утилиты
- -q (—quiet) — выводит минимум информации о работе
- -ifile> (—input-file) — читает URL из файла
- —force-html — читает файл указанный в предыдущем параметре как html
- -t (—tries) — количество попыток подключения к серверу
- -O file>(—output-document) — файл в который будут сохранены полученные данные
- -с (—continue) — продолжает ранее прерванную загрузку
- -S (—server-response) — выводит ответ сервера
- —spider — проверяет работоспособность URL
- -T time> (—timeout) — таймаут подключения к серверу
- —limit-rate — ограничивает скорость загрузки
- -w (—wait) — интервал между запросами
- -Q(—quota) — максимальный размер загрузки
- -4 (—inet4only) — использовать протокол ipv4
- -6 (—inet6only) — использовать протокол ipv6
- -U (—user-agent) — строка USER AGENT отправляемая серверу
- -r (—recursive) — рекурсивная работа утилиты
- -l (—level) — глубина при рекурсивном сканировании
- -k(—convert-links) — конвертирует ссылки в локальные при загрузке страниц
- -P (—directory-prefix) — каталог, в который будут загружаться файлы
- -m(—mirror) — скачивает сайт на локальную машину
- -p(—page-requisites) — во время загрузки сайта скачивает все необходимые ресурсы
Примеры команд wget
Как скачать файл из Интернета
Чтобы загрузить файл из Интернета, используйте пример:
wget http://apache.cs.utah.edu/tomcat/tomcat-9/v9.0.20/bin/apache-tomcat-9.0.20.tar.gz
Как скачать файл и сохранить с другим названием
Параметр -O устанавливает имя выходного файла. Если файл называется terraform_0.12.2_linux_amd64.zip , и вы хотите сохранить его непосредственно в terraform.zip , вы должны использовать такую команду:
wget –O terraform.zip https://releases.hashicorp.com/terraform/0.12.2/terraform_0.12.2_linux_amd64.zip
Как сохранить файл в конкретный каталог
По умолчанию wget загружает файл в каталог, в котором находится пользователь. Чтобы сохранить файл в другом месте, добавьте параметр –P :
wget –P /temp https://github.com/git/git/archive/master.zip
Как установить скорость загрузки
Вы можете установить скорость загрузки при скачивании большого файла, чтобы он не использовал всю доступную пропускную способность. Скорость загрузки определяется в килобайтах (k) и мегабайтах (m). Используйте команду:
wget —limit-rate 1m http://us.download.nvidia.com/tesla/396.37/nvidia-diag-driver-local-repo-ubuntu1710-396.37_1.0-1_amd64.deb
Как продолжить загрузку после прерывания
Вместо того, чтобы начинать с нуля, wget может возобновить загрузку с того места, где она была остановлена до прерывания. Это полезная функция, если при загрузке файла происходит потеря соединения.
wget –c https://github.com/mumble-voip/mumble/releases/download/1.2.19/murmur-static_x86-1.2.19.tar.bz2
Как скачать несколько файлов
- Сначала создайте и откройте файл с именем MultipleDownloads.txt (или другим именем по вашему выбору) с помощью текстового редактора.:
- В редакторе добавьте URL-адреса, которые вы хотите загрузить, по одному в каждой строке.
- Сохраните и выйдите из файла.
- Выполните следующую команду wget в окне терминала:
wget –i MultipleDownloads.txt
Как загрузить зеркало веб-страницы
С помощью wget вы можете загрузить весь веб-сайт из Интернета, используя параметр –m . Он предлагает wget создать зеркало указанной веб-страницы. Основная команда для этого:
Как скачать через FTP
Чтобы загрузить через FTP, введите имя пользователя и пароль FTP-сервера, а затем ftp-адрес:
wget —ftp-user=sofiftp —ftp-password=TopSecretPassword ftp://123.456.7890
Как скачать в фоновом режиме
Вы можете использовать функцию загрузки в фоновом режиме при работе с большими файлами:
wget –b http://some_website/sample_file.rpm
Как увеличить число попыток повтора
По умолчанию количество повторных попыток установлено на 20.
Вы также можете установить число на бесконечность со значениями 0 или inf, как в следующем примере:
wget —tries=inf http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
Как пропустить проверку сертификата
По умолчанию wget проверяет, есть ли у сервера действительный сертификат SSL / TLS. Если он не идентифицирует подлинный сертификат, он отказывается от загрузки.
Параметр —no-check-certificate используется, чтобы отменить проверку сертификата. Однако используйте его только в том случае, если вы уверены в надежности веб-сайта или не беспокоитесь о проблемах безопасности, которые он может вызвать.
wget —no-check-certificate http://enteratonerisk.com
Как изменить User Agent
При загрузке веб-страницы wget по сути эмулирует браузер. В некоторых случаях в выводе может быть указано, что у вас нет разрешения на доступ к серверу или что соединение запрещено. Это может быть связано с тем, что веб-сайт блокирует клиентские браузеры с определенным «User-Agent».
«User-Agent» — это поле заголовка, которое браузер отправляет на сервер, к которому он хочет получить доступ. Поэтому для загрузки с сервера, который отказывается подключаться, попробуйте его изменить.
Найдите базу данных всех пользовательских агентов в сети, найдите тот, который вам нужен, и выполните команду:
wget —user-agent=” Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36” “https://phoenixnap.com”
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка 5 / 5. Количество оценок: 1
Оценок пока нет. Поставьте оценку первым.
Источник: artzolin.ru
Использование команды Wget на простых примерах
Утилита wget (или команда wget) предназначена для скачивания файлов, веб страниц и других ресурсов из интернета. Рассмотрим основные возможности команды wget на примерах.
Синтаксис команды wget
Команда wget имеет следующий синтаксис:
wget [опции] URL
В простейшем случае, чтобы скачать файл, достаточно указать URL-адрес:
wget https://domain.ru/filename.tar.bz2
Выполнив данную команду, вы скачаете файл filename.tar.bz2 , расположенный по адресу https://domain.ru/filename.tar.bz2, который будет сохранен в текущую директорию.
Указание нового имени файла
Используя опцию -O можно задать название результирующего файла.
Например, если файл, который вы скачиваете, имеет имя filename-1.3.0-release-branch.tar , вы можете сохранить его с именем filename.tar :
wget -O filename.tar ftp://some.host.com/filename-1.3.0-release-branch.tar
Скачивание в фоновом режиме
Чтобы скачать файл в фоновом режиме используется опция -b :
wget -b http://host.com/file.zip
Скачивание нескольких файлов (по списку)
Команде wget можно передать текстовый файл, в котором на каждой строчке записаны URL-адреса, которые требуется скачать. Для этого используется опция -i :
wget -i list-of-files.txt
Скачивание файлов по ссылкам в HTML-документе
Команда wget поддерживает скачивание файлов по ссылкам в HTML-документе. То есть она автоматически находит все ссылки в HTML-файле и скачивает их:
wget —force-html -i file.html
Ограничение скорости скачивания
Чтобы ограничить скорость скачивания используется опция —limit-rate .
wget —limit-rate=500k http://some-site.com/filename.tar.gz
500k означает 500KB/s.
В качестве значения —limit-rate можно указывать скорость загрузки в следующих форматах:
- байтах в секунду — например: 300
- килобайтах в секунду — например: 10k
- мегабайтах в секунду- например: 10.5m
Продолжение загрузки
Чтобы продолжить прервавшуюся загрузку используется опция -c :
wget -c http://some-site.com/file.tar
Проверка существования файла
Перед тем, как скачать файл, можно проверить существует ли он. Например, это может потребоваться, когда вы скачиваете большое количество файлов и хотите заранее знать, все ли из них доступны. Для проверки доступности файлов используется опция —spider .
Например, чтобы проверить доступность файлов в списке можно использовать команду:
wget —spider -i list-of-files.txt
Также можно проверить доступен ли конкретный файл:
wget —spider http://site.com/filename.zip
При использовании опции —spider файлы не скачиваются, а только выполняется проверка.
Как скачать сайт
Инструкцию по скачиванию сайтов с помощью wget смотрите в отдельной статье: Скачиваем сайты целиком — утилита wget
Скачивание с FTP (указание логина и пароля)
Чтобы скачать файл с FTP-сервера, для которого требуется указание логина и пароля, используются опции —ftp-user и —ftp-password :
wget —ftp-user=ИМЯ_ПОЛЬЗОВАТЕЛЯ —ftp-password=ПАРОЛЬ ftp://ftp.адрес.com/filename.tar
Скачивание с HTTP с указанием логина и пароля
Если для доступа к ресурсу по HTTP требуется указание имени пользователя и пароля, то для этого используются опции —http-user и —http-password :
wget —http-user=ИМЯ_ПОЛЬЗОВАТЕЛЯ —http-password=ПАРОЛЬ http://ftp.адрес.com/filename.tar
Указание количества попыток
Если соединение нестабильное, то можно задать количество попыток, чтобы загрузка файла продолжалась в случае сбоя. Для указания количества попыток используется опция -t :
wget -t 10 http://site.com/filename.zip
По умолчанию установлено количество попыток — 20. Но если при попытке загрузки файла получена ошибка 404 (файл не найден) или connection refused, то скачивание прерывается.
Ожидание между загрузкой файлов
При скачивании большого количества файлов, слишком частое обращение к удаленному серверу с вашей стороны может расцениваться сервером как DDoS атака. Опция -w позволяет задать количество секунд, которое требуется ожидать перед загрузкой очередного файла.
wget -w 15 .
Некоторые веб-сайты умеют распознавать автоматические запросы к сайту, которые происходят с заданной периодичностью. Поэтому даже использование опции -w не всегда помогает. В таких случаях можно воспользоваться дополнительной опцией —random-wait . При ее использовании ожидание перед загрузкой очередного файла составляет случайное количество секунд от 0.5*wait до 1.5*wait. Пример использования (ожидание будет в диапазоне от 15 до 45 секунд):
wget -w 30 —random-wait .
Указание нескольких опций
В примерах выше мы использовали опции по отдельности. Можно использовать несколько опций в одной команде одновременно, например:
wget -w 50 —random-wait -t 15 —limit-rate=5m http://site.com/file.zip
Заключение
Мы рассмотрели только базовые возможности команды wget по скачиванию файлов. Полный список всех опций и их описание можно получить, выполнив в командной строке:
man wget
Источник: pingvinus.ru
1. Скачивание страницы
Если все подключилось, то wget загрузит домашнюю страницу и покажет результат, как показано ниже:
wget github.com URL transformed to HTTPS due to an HSTS policy —2020-02-23 10:45:52— https://github.com/ Resolving github.com (github.com). 140.82.118.3 Connecting to github.com (github.com)|140.82.118.3|:443. connected. HTTP request sent, awaiting response. 200 OK Length: unspecified [text/html] Saving to: ‘index.html’ index.html [ ] 131.96K —.-KB/s in 0.04s 2020-02-23 10:45:52 (2.89 MB/s) — ‘index.html’ saved [135126]
2. Скачивание нескольких файлов
Круто, если можно загрузить сразу несколько файлов.
Это, кстати, идея для написания какого-нибудь скрипта для автоматизации загрузки файлов, подумайте на досуге.
Попробуем скачать архивы с 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
Не забывайте про пробел между ссылками!
3. Ограничение скорости загрузки
Ограничить скорость загрузки полезно, когда стоит задача проверить, сколько времени занимает загрузка файла на разной пропускной способности.
Используя опцию — limit-rate , вы можете ограничить скорость загрузки.
Вот результат загрузки файла Node.js:
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 Resolving nodejs.org (nodejs.org). 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:162e, . Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443. connected. HTTP request sent, awaiting response. 200 OK Length: 14591852 (14M) [application/x-xz] Saving to: ‘node-v12.16.1-linux-x64.tar.xz’ node-v12.16.1-linux-x64.tar.xz 100%[===========================================================================================>] 13.92M —.-KB/s in 0.05s 2020-02-23 10:59:58 (272 MB/s) — ‘node-v12.16.1-linux-x64.tar.xz’ saved [14591852/14591852]
Потребовалось 0.05 с, чтобы скачать 13.92 Мб. Теперь попробуем ограничить скорость до 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 Resolving nodejs.org (nodejs.org). 104.20.23.46, 104.20.22.46, 2606:4700:10::6814:162e, . Connecting to nodejs.org (nodejs.org)|104.20.23.46|:443. connected. HTTP request sent, awaiting response.
200 OK Length: 14591852 (14M) [application/x-xz] Saving to: ‘node-v12.16.1-linux-x64.tar.xz.1’ node-v12.16.1-linux-x64.tar.xz.1 100%[===========================================================================================>] 13.92M 501KB/s in 28s 2020-02-23 11:00:46 (500 KB/s) — ‘node-v12.16.1-linux-x64.tar.xz.1’ saved [14591852/14591852]
Скорость загрузки упала до 28 с. Представьте себе ситуацию – юзеры жалуются на медленную загрузку. Вы можете быстро поиграться с limit-rate для имитации проблемы.
4. Загрузка в фоне
Загрузка больших файлов может занять некоторое время, но что если вы не хотите смотреть в терминал?
Можно использовать ключ -b , чтобы запустить wget в фоновом режиме:
wget -b https://slack.com Continuing in background, pid 25430. Output will be written to ‘wget-log.1’.
5. Игнорирование ошибки сертификата
Игнорирование ошибки сертификата удобно, когда вам нужно обратиться к узлу во внешней сети без соответствующего сертификата.
Если сертификат не является валидным, по умолчанию wget выдаст ошибку.
wget https://expired.badssl.com/ —2020-02-23 11:24:59— https://expired.badssl.com/ Resolving expired.badssl.com (expired.badssl.com). 104.154.89.105 Connecting to expired.badssl.com (expired.badssl.com)|104.154.89.105|:443. connected. ERROR: cannot verify expired.badssl.com’s certificate, issued by ‘CN=COMODO RSA Domain Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB’: Issued certificate has expired. To connect to expired.badssl.com insecurely, use `—no-check-certificate’.
На примере выше результат истекшего срока действия сертификата. Предлагается использовать —no-check-certificate для игнорирования любой проверки сертификата. Сравним результат с добавленным ключом:
wget https://untrusted-root.badssl.com/ —no-check-certificate —2020-02-23 11:33:45— https://untrusted-root.badssl.com/ Resolving untrusted-root.badssl.com (untrusted-root.badssl.com). 104.154.89.105 Connecting to untrusted-root.badssl.com (untrusted-root.badssl.com)|104.154.89.105|:443. connected. WARNING: cannot verify untrusted-root.badssl.com’s certificate, issued by ‘CN=BadSSL Untrusted Root Certificate Authority,O=BadSSL,L=San Francisco,ST=California,C=US’: Self-signed certificate encountered. HTTP request sent, awaiting response. 200 OK Length: 600 [text/html] Saving to: ‘index.html.6’ index.html.6 100%[===========================================================================================>] 600 —.-KB/s in 0s 2020-02-23 11:33:45 (122 MB/s) — ‘index.html.6’ saved [600/600]
С помощью ключа -S в терминал будет выведен заголовок, как это произошло с Яндексом:
wget -S —no-check-certificate https://www.yandex.ru —2020-03-20 02:52:16— https://www.yandex.ru/ Resolving www.yandex.ru (www.yandex.ru). 149.5.244.14, 80.239.201.15 Connecting to www.yandex.ru (www.yandex.ru)|149.5.244.14|:443. connected. HTTP request sent, awaiting response.
HTTP/1.1 200 Ok Accept-CH: Viewport-Width, DPR, Device-Memory, RTT, Downlink, ECT Accept-CH-Lifetime: 31536000 Cache-Control: no-cache,no-store,max-age=0,must-revalidate Content-Length: 199540 Content-Type: text/html; charset=UTF-8 Date: Thu, 19 Mar 2020 23:52:49 GMT Expires: Thu, 19 Mar 2020 23:52:50 GMT Last-Modified: Thu, 19 Mar 2020 23:52:50 GMT P3P: policyref=»/w3c/p3p.xml», CP=»NON DSP ADM DEV PSD IVDo OUR IND STP PHY PR E NAV UNI» Set-Cookie: yp=1587253970.ygu.1; Expires=Sun, 17-Mar-2030 23:52:49 GMT; Domain =.yandex.ru; Path=/ Set-Cookie: mda=0; Expires=Fri, 17-Jul-2020 23:52:49 GMT; Domain=.yandex.ru; P ath=/ Set-Cookie: yandex_gid=213; Expires=Sat, 18-Apr-2020 23:52:49 GMT; Domain=.yan dex.ru; Path=/ X-Content-Type-Options: nosniff X-Frame-Options: DENY X-Yandex-Sdch-Disable: 1
7. Манипуляции с User-Agent
Бывает так, что мы хотим открыть сайт с помощью другого user-agent . Это можно сделать, указав ключ —user-agent :
wget https://gf.dev —user-agent=»MyCustomUserAgent»
Когда приложение находится в разработке и есть необходимость что-то потестить, но нет подходящего URL-адреса или мы хотим протестировать домен с использованием IP-адреса – в обеих ситуациях будет полезен —header .
Для примера возьмем http://10.10.10.1 и application.com в качестве заголовка:
wget —header=»Host: application.com» http://10.10.10.1
9. Подключение через прокси
Если вы работаете в среде DMZ, вас может не выпускать в интернет. Воспользуйтесь преимуществами прокси для подключения:
wget -e use_proxy=yes http_proxy=$PROXYHOST:PORT http://externalsite.com
Не забудьте в переменной $PROXYHOST:PORT указать реальные значения.
10. Подключение через TLS
Обычно рекомендуют использовать OpenSSL для тестирования протокола TLS. Но можете использовать и wget .
wget —secure-protocol=TLSv1_2 https://example.com
Вышеизложенное заставит wget подключиться через TLS 1.2.
Заключение
Если вам интересно подробнее разобраться в утилите, имеется перевод документации wget на русский. В некоторых случаях хорошей альтернативой wget является cURL, а для создания зеркал сайтов (чего cURL не умеет) обычно используется rsync.
Еще вам могут быть интересны следующие публикации:
- 6 команд терминала и пара комбинаций, полезных для начинающих разработчиков
- Терминал Linux: видеокурс по работе на примере Ubuntu
- 14 полезных трюков для работы с консолью
Источники
Источник: proglib.io