Инструменты пользователя

Инструменты сайта


wget

Wget: справка

В большинстве случаев программа wget используется без «ключей»1), однако в отдельных случаях - например тогда, когда выполняется «редирект» - требуется добавить дополнительный параметр.

"Редирект"

Довольно часто бывает так, что создатели сайтов - веб-мастера, разработчики ПО - не предоставляют «прямую ссылку» на файл, а скачивание осуществляется путём выполнения «редиректа» средствами протокола HTTP. В результате, возвращается код ответа 302. В этом случае требуется запустить wget с параметром ––trust-server-names.

Пример (wget ––trust-server-name)

Пример (wget ––trust-server-name)

Пример (wget ––trust-server-name)

При попытке выполнить «загрузку» файла без использования параметра ––trust-server-name загружается лишь index.html:

# wget http://get.pyload.org/get/src/
--2014-10-29 14:43:05--  http://get.pyload.org/get/src/
Resolving get.pyload.org (get.pyload.org)... 216.239.32.21
Connecting to get.pyload.org (get.pyload.org)|216.239.32.21|:80... connected.
HTTP request sent, awaiting response... 303 See Other
Location: http://download.pyload.org/pyload-src-v0.4.9.zip [following]
--2014-10-29 14:43:06--  http://download.pyload.org/pyload-src-v0.4.9.zip
Resolving download.pyload.org (download.pyload.org)... 188.165.68.109
Connecting to download.pyload.org (download.pyload.org)|188.165.68.109|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1582931 (1.5M) [application/zip]
Saving to: ‘index.html’

Следует обратить внимание на значение Location, где присутствует путь к файлу!
Если добавить ––trust-server-names:

wget ––trust-server-names http://get.pyload.org/get/src/
--2014-10-29 14:50:31--  http://get.pyload.org/get/src/
Resolving get.pyload.org (get.pyload.org)... 216.239.32.21
Connecting to get.pyload.org (get.pyload.org)|216.239.32.21|:80... connected.
HTTP request sent, awaiting response... 303 See Other
Location: http://download.pyload.org/pyload-src-v0.4.9.zip [following]
--2014-10-29 14:50:31--  http://download.pyload.org/pyload-src-v0.4.9.zip
Resolving download.pyload.org (download.pyload.org)... 188.165.68.109
Connecting to download.pyload.org (download.pyload.org)|188.165.68.109|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1582931 (1.5M) [application/zip]
Saving to: ‘pyload-src-v0.4.9.zip’ 

Файл успешно сохранён!


Работа в "фоном режиме", логгирование

-b2) - простой ключ, который позволяет «перевести» приложение wget в «фоновый режим» - можно будет продолжать работу в текущем терминале, а не открывать новый:

$ wget -b http://repo.unixlikeos.ru/pub/stub

В качестве альтернативного вариант можно использовать nohup, добавить в конце строки с вызовом wget специальный символ & или нажать [Ctrl] + [z] в процессе выполнения, но лучше воспользоваться средствами приложения.
Довольно часто, когда wget работает в «фоновом режиме», требуется контролировать процесс загрузки. Ведение «лога» - «журнала» - можно включить, добавив «ключ» -o3) и указав файл для записи:

$ wget -b -o /tmp/dwl.log http://repo.unixlikeos.ru/pub/stub

Организовав запуск загрузок небольших файлов (средствами Wget) «по расписанию», можно проанализировав «журналы работы», сделать примитивный мониторинг доступности канала связи в Интернет. Для России можно использовать «доступные с минимальным количеством hop» и производительные web-сервера yandex.ru Например: mirror.yandex.ru.

Загрузка по https

Для загрузки файлов по протоколу https обязательным условием является поддержка программой библиотек SSL4) - Wget должен быть соответствующим образом «собран»5). Проверить «поддержку» SSL можно с помощью «определения зависимостей» (команда ldd).

$ ldd `which wget` | grep ssl
$ libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f6d76d8f000)

При простой загрузке файлов по протоколу https синтаксис команды не меняется. Однако иногда может потребоваться загрузить файл с хоста, где срок действия сертификата истёк/не наступил, либо сертификат не подтверждён удостоверяющим центром6).
Для выполнения подобной операции требуется запустить wget с ключом ––no-check-certificate.

Пример (wget ––no-check-certificate); использование имени/пароля

Пример (wget ––no-check-certificate); использование имени/пароля

Пример (wget ––no-check-certificate); использование имени/пароля

Как было сказано выше ключ ––no-check-certificate позволяет загрузить файл с удалённого назначения в случае, если сертификат «недействителен»:

$ wget ––no-check-certificate https://non-exist-url.net/stub
--2014-10-30 14:24:27--  https://non-exist-url.com/stub
Resolving sw.stty.ru (non-exist-url.net)... 1.1.1.1
Connecting to sw.stty.ru (non-exist-url.net)|1.1.1.1|:443... connected.
WARNING: cannot verify non-exist-url.net's certificate, issued by ‘/C=GB/ST=Greater Manchester/L=Salford/O=Z CA Limited/CN=EssentialSSL CA’:
  Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 200 OK
Length: 16 [text/plain]
Saving to: ‘stub’

В отдельных случаях может потребоваться ввести имя и пароль при загрузке по протоколу https с узла с «недействительным» сертификатом. Чтобы использовать имя и пароль потребуется указать параметры ––user и ––password:

$ wget --no-check-certificate ––user=user1 ––password=mypass https://non-exist-url.net/stub
2) или ––background
3) или ––output-file=
4) обычно это OpenSSL
5) слинкован/скомпилирован
6) подобная процедура загрузки является «небезопасной», но, к сожалению, подобная практика довольна распространена
wget.txt · Последние изменения: 2014/10/31 07:01 — Alex