Команда wget в Linux

Опубликовано admin - чт, 05/19/2022 - 16:37

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

Команда wget Linux

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

Содержание

Синтаксис команды wget

wget [ПАРАМЕТР]... [URL]...

Обязательные аргументы для длинных параметров являются обязательными и для коротких параметров.

Основные опции

-V,  --version
показать версию Wget и завершить работу
-h,  --help
показать эту справку
-b,  --background
после запуска перейти в фоновый режим
-o,  --output-file=ФАЙЛ
записывать сообщения в ФАЙЛ
-d,  --debug
показать много отладочной информации
-q,  --quiet
ничего не выводить
-v,  --verbose
показывать подробные сведения (по умолчанию)
-i,  --input-file=ФАЙЛ
загрузить URL-ы согласно локальному или внешнему ФАЙЛУ
-t,  --tries=ЧИСЛО
установить ЧИСЛО повторных попыток (0 без ограничения)
-O,  --output-document=ФАЙЛ
записывать документы в ФАЙЛ
-nc, --no-clobber
пропускать загрузки, которые приведут к загрузке уже существующих файлов (и их перезаписи)
-c,  --continue
возобновить загрузку частично загруженного файла
-N,  --timestamping
не загружать повторно файлы, только если они не новее, чем локальные
-T,  --timeout=СЕКУНДЫ
установка значений всех тайм-аутов равными числу СЕКУНД
-w,  --wait=СЕКУНДЫ
пауза в СЕКУНДАХ между загрузками (при загрузке более 1 URL)
-Q,  --quota=ЧИСЛО
установить величину квоты загрузки в ЧИСЛО
     --limit-rate=СКОРОСТЬ
ограничить СКОРОСТЬ загрузки
-P,  --directory-prefix=ПРЕФИКС
сохранять файлы в ПРЕФИКС/..
-U,  --user-agent=АГЕНТ
идентифицировать себя как АГЕНТ вместо Wget/ВЕРСИЯ
-r,  --recursive
включение рекурсивной загрузки
-l,  --level=ЧИСЛО
глубина рекурсии (inf и 0 — бесконечность)
-k,  --convert-links
делать ссылки локальными в загруженном HTML или CSS
-m,  --mirror
короткий параметр, эквивалентный -N -r -l inf --no-remove-listing
-p,  --page-requisites
загрузить все изображения и проч., необходимые для отображения HTML-страницы

Установка wget Linux

Большинство дистрибутивов Linux имеют команду wget в базовой поставке, но если эта утилита отсутствует, то её легко можно установить.

Установка утилиты на Ubuntu

$ sudo apt install wget

Как пользоваться wget в Linux

Загрузка файла в текущий каталог

oleg@mobile:~/store/distros/ubuntu:$ wget -c https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso22.04/ubuntu-22.04-desktop-amd64.iso
--2022-05-19 15:28:19--  https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso
Загружен сертификат CA «/etc/ssl/certs/ca-certificates.crt»
Распознаётся releases.ubuntu.com (releases.ubuntu.com)… 185.125.190.37, 91.189.91.123, 91.189.91.124, ...
Подключение к releases.ubuntu.com (releases.ubuntu.com)|185.125.190.37|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 3654957056 (3,4G) [application/x-iso9660-image]
Сохранение в: «ubuntu-22.04-desktop-amd64.iso»

ubuntu-22.04-desktop-amd64.iso      1%[                                                              ]  41,34M  1,84MB/s    ост 32m 34s

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

Загрузка нескольких файлов

Создаём пустой файл files.txt в текущем каталоге

oleg@mobile:~/build/slackbuild64-15.0:$ touch files.txt

Открываем редактор vim и записываем в него ссылки на нужные нам файлы

oleg@mobile:~/build/slackbuild64-15.0:$ vim files.txt

Команда wget Linux, загрузка файлов по ссылкам

Загружаем файлы с опцией -i по ссылкам

oleg@mobile:~/build/slackbuild64-15.0:$ wget -i files.txt
--2022-05-19 15:45:38--  https://slackbuilds.org/slackbuilds/15.0/network/httrack/README
Загружен сертификат CA «/etc/ssl/certs/ca-certificates.crt»
Распознаётся slackbuilds.org (slackbuilds.org)… 66.85.79.67, 2604:5800:0:90::67
Подключение к slackbuilds.org (slackbuilds.org)|66.85.79.67|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 641
Сохранение в: «README»

README                            100%[=============================================================>]     641  --.-KB/s    за 0s      

2022-05-19 15:45:39 (6,89 MB/s) - «README» сохранён [641/641]

--2022-05-19 15:45:39--  https://slackbuilds.org/slackbuilds/15.0/network/httrack/doinst.sh
Повторное использование соединения с slackbuilds.org:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 322 [text/plain]
Сохранение в: «doinst.sh»

doinst.sh                         100%[=============================================================>]     322  --.-KB/s    за 0s      

2022-05-19 15:45:40 (3,85 MB/s) - «doinst.sh» сохранён [322/322]

--2022-05-19 15:45:40--  https://slackbuilds.org/slackbuilds/15.0/network/httrack/httrack.SlackBuild
Повторное использование соединения с slackbuilds.org:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 2529 (2,5K)
Сохранение в: «httrack.SlackBuild»

httrack.SlackBuild                100%[=============================================================>]   2,47K  --.-KB/s    за 0s      

2022-05-19 15:45:40 (26,7 MB/s) - «httrack.SlackBuild» сохранён [2529/2529]

--2022-05-19 15:45:40--  https://slackbuilds.org/slackbuilds/15.0/network/httrack/httrack.info
Повторное использование соединения с slackbuilds.org:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 278
Сохранение в: «httrack.info»

httrack.info                      100%[=============================================================>]     278  --.-KB/s    за 0s      

2022-05-19 15:45:40 (3,06 MB/s) - «httrack.info» сохранён [278/278]

--2022-05-19 15:45:40--  https://slackbuilds.org/slackbuilds/15.0/network/httrack/slack-desc
Повторное использование соединения с slackbuilds.org:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 1159 (1,1K)
Сохранение в: «slack-desc»

slack-desc                        100%[=============================================================>]   1,13K  --.-KB/s    за 0s      

2022-05-19 15:45:40 (12,5 MB/s) - «slack-desc» сохранён [1159/1159]

ЗАВЕРШЕНО --2022-05-19 15:45:40--
Общее время: 1,8s
Загружено: 5 файлов, 4,8K за 0s (10,8 MB/s)

Загрузка файла в фоновом режиме

В этом случае используется опция -b. Вывод будет записан в лог-файл.

Загрузка файла в конкретный каталог

В этом случае следует использовать опцию -P.

oleg@mobile:~:$ wget -cP ~/build/slackbuild64-15.0/ https://slackbuilds.org/slackbuilds/15.0/games/extremetuxracer.tar.gztuxracer.tar.gz
--2022-05-19 16:04:48--  https://slackbuilds.org/slackbuilds/15.0/games/extremetuxracer.tar.gz
Загружен сертификат CA «/etc/ssl/certs/ca-certificates.crt»
Распознаётся slackbuilds.org (slackbuilds.org)… 66.85.79.67, 2604:5800:0:90::67
Подключение к slackbuilds.org (slackbuilds.org)|66.85.79.67|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 2458 (2,4K) [application/x-gzip]
Сохранение в: «/home/oleg/build/slackbuild64-15.0/extremetuxracer.tar.gz»

extremetuxracer.tar.gz            100%[=============================================================>]   2,40K  --.-KB/s    за 0s      

2022-05-19 16:04:48 (60,6 MB/s) - «/home/oleg/build/slackbuild64-15.0/extremetuxracer.tar.gz» сохранён [2458/2458]

Создание зеркала сайта

Для скачивания сайта целиком используются опции -m, -k, -p.

oleg@mobile:$ wget -cmkp https://crux.nu/
--2022-05-19 16:12:59--  https://crux.nu/
Загружен сертификат CA «/etc/ssl/certs/ca-certificates.crt»
Распознаётся crux.nu (crux.nu)… 213.132.101.140
Подключение к crux.nu (crux.nu)|213.132.101.140|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [text/html]
Сохранение в: «crux.nu/index.html»

crux.nu/index.html                    [ <=>                                                          ]   6,89K  --.-KB/s    за 0s      

Отсутствует заголовок last-modified — временные отметки выключены.
2022-05-19 16:12:59 (62,8 MB/s) - «crux.nu/index.html» сохранён [7053]

Загружается robots.txt; не обращайте внимание на ошибки.
--2022-05-19 16:12:59--  https://crux.nu/robots.txt
Повторное использование соединения с crux.nu:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 72 [text/plain]
Сохранение в: «crux.nu/robots.txt»

crux.nu/robots.txt                100%[=============================================================>]      72  --.-KB/s    за 0s      

2022-05-19 16:12:59 (90,6 MB/s) - «crux.nu/robots.txt» сохранён [72/72]

Загружается robots.txt; не обращайте внимание на ошибки.
--2022-05-19 16:12:59--  http://crux.nu/robots.txt
Подключение к crux.nu (crux.nu)|213.132.101.140|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://crux.nu/robots.txt [переход]
--2022-05-19 16:12:59--  https://crux.nu/robots.txt
Подключение к crux.nu (crux.nu)|213.132.101.140|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 416 Requested Range Not Satisfiable

    Файл уже полностью загружен; нечего выполнять.

--2022-05-19 16:13:00--  https://crux.nu/pub/skins/crux/pmwiki.css
Повторное использование соединения с crux.nu:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 9204 (9,0K) [text/css]
Сохранение в: «crux.nu/pub/skins/crux/pmwiki.css»

crux.nu/pub/skins/crux/pmwiki.css 100%[=============================================================>]   8,99K  --.-KB/s    за 0s      

2022-05-19 16:13:00 (37,2 MB/s) - «crux.nu/pub/skins/crux/pmwiki.css» сохранён [9204/9204]

--2022-05-19 16:13:00--  http://crux.nu/rss.php
Подключение к crux.nu (crux.nu)|213.132.101.140|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://crux.nu/rss.php [переход]
--2022-05-19 16:13:00--  https://crux.nu/rss.php
Подключение к crux.nu (crux.nu)|213.132.101.140|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [text/xml]
Сохранение в: «crux.nu/rss.php»

crux.nu/rss.php                       [ <=>                                                          ]  10,23K  --.-KB/s    за 0s      

Отсутствует заголовок last-modified — временные отметки выключены.
2022-05-19 16:13:01 (35,4 MB/s) - «crux.nu/rss.php» сохранён [10477]

--2022-05-19 16:13:01--  https://crux.nu/Main/HomePage
Повторное использование соединения с crux.nu:443.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [text/html]
Сохранение в: «crux.nu/Main/HomePage»

...

Заключение

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

Поделиться с друзьями