Команда wget Linux

Работая в консоли, нам достаточно часто приходится взаимодействовать с сетью, например скачивать файлы или целые интернет страницы. Если интернет страницы мы скачиваем довольно редко, то с файлами дело обстоит совсем по другому. Это могут быть различные скрипты, установочные пакеты, программы, ключи, списки пакетов и многое другое. Скачать файл в консоли Linux можно с помощью утилиты wget. Ее мы и рассмотрим в этой статье.

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

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

Синтаксис Wget

Команда wget linux имеет очень простой синтаксис:

$ wget опции аддресс_ссылки

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

Опции

Синтаксис опций очень свободный. У каждой опции, как правило есть как длинное, так и короткое имя. Их можно записывать как до URL, так и после. Между опцией и ее значением не обязательно ставить пробел, например вы можете написать -o log или -olog. Эти значения эквивалентны. Также если у опций нет параметров, не обязательно начинать каждую с дефиса, можно записать их все вместе: -drc и -d -r -c. Эти параметры wget тоже эквивалентны.

А теперь давайте перейдем к списку опций. У wget слишком много опций, мы разберем только основные.

  • -V (—version) — вывести версию программы
  • -h (—help) — вывести справку
  • -b (—background) — работать в фоновом режиме
  • -o файл (—out-file) — указать лог файл
  • -d (—debug) — включить режим отладки
  • -v (—verbose) — выводить максимум информации о работе утилиты
  • -q (—quiet) — выводить минимум информации о работе
  • -i файл (—input-file) — прочитать URL из файла
  • —force-html — читать файл указанный в предыдущем параметре как html
  • -t (—tries) — количество попыток подключения к серверу
  • -O файл (—output-document) — файл в который будут сохранены полученные данные
  • -с (—continue) — продолжить ранее прерванную загрузку
  • -S (—server-response) — вывести ответ сервера
  • —spider — проверить работоспособность URL
  • -T время (—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 намного интереснее.

Использование wget Linux

Команда wget linux, обычно поставляется по умолчанию в большинстве дистрибутивов, но если нет, ее можно очень просто установить. Например установка с помощью yum будет выглядеть следующим образом:

yum -y install wget

А в дистрибутивах основанных на Debian:

sudo apt install wget

Теперь перейдем непосредственно к примерам:

1. Загрузка файла

Команда wget linux скачает один файл и сохранит его в текущей директории. Во время загрузки мы увидим прогресс, размер файла, дату его последнего изменения, а также скорость загрузки:

wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

wget1

2. Сохранить файл с другим именем

Опция -О позволяет задать имя сохраняемому файлу, например, скачать файл wget с именем wget.zip:

wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

wget2

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

Вы можете скачать несколько файлов одной командой даже по разным протоколам, просто указав их URL:

wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig

wget3

4. Взять URL из файла

Вы можете сохранить несколько URL в файл, а затем загрузить их все, передав файл опции -i. Например создадим файл tmp.txt, со ссылками для загрузки wget, а затем скачаем его:

wget -i /wget/tmp.txt

wget4

5. Продолжить загрузку

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

wget -c http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

wget5

6. Загрузка файлов в фоне

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

wget -b -o ~/wget.log http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

wget6

7. Ограничение скорости загрузки

Команда wget linux позволяет не только продолжать загрузку файлов, но и ограничивать скорость загрузки. Для этого есть опция —limit-rate. Например ограничим скорость до 100 килобит:

wget --limit-rate=100k ftp://ftp.iinet.net.au/debian/debian-cd/8.4.0/amd64/iso-dvd/debian-8.4.0-amd64-DVD-1.iso

wget7

Здесь доступны, как и в других подобных командах индексы для указания скорости — k — килобит, m — мегабит, g — гигабит, и так далее.

8. Подключение по логину и паролю

Некоторые ресурсы требуют аутентификации, для загрузки их файлов. С помощью опций —http-user=username, –http-password=password и —ftp-user=username, —ftp-password=password вы можете задать имя пользователя и пароль для HTTP или FTP ресурсов.

wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

Или:

wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

9. Загрузить и выполнить

Вы, наверное, уже видели такие команды. wget позволяет сразу же выполнять скачанные скрипты:

wget -O - http://сайт/скрипт.sh | bash

Если опции -O не передать аргументов, то скачанный файл будет выведен в стандартный вывод, затем мы его можем перенаправить с интерпретатор bash, как показано выше.

10. Сохранить файл в папке

По умолчанию wget сохраняет файл в текущую папку, но это поведение очень легко изменить с помощью опции -P:

wget -P ~/Downloads/ http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

wget8

11. Передать информацию о браузере

Некоторые сайты фильтруют ботов, но мы можем передать фальшивую информацию о нашем браузере (user-agent) и страницу с которой мы пришли (http-referer).

wget ‐‐refer=http://google.com ‐‐user-agent=”Mozilla/5.0 Firefox/4.0.1″ //losst.ru

wget7

12. Количество попыток загрузки

По умолчанию wget пытается повторить загрузку 20 раз, перед тем как завершить работу с ошибкой. Количество раз можно изменить с помощью опции —tries:

wget --tries=75 http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

13. Квота загрузки

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

wget -Q10m -i download-list.txt

Здесь работают те же индексы для указания размера — k, m, g, и т д.

14. Скачать сайт

Wget позволяет не только скачивать одиночные файлы, но и целые сайты, чтобы вы могли их потом просматривать в офлайне. Использование wget, чтобы скачать сайт в linux выглядит вот так:

wget --mirror -p --convert-links -P ./<Local-Folder> аддресс_сайт

Выводы

Вот и все, теперь использование wget не будет для вас таким непонятным. Если я упустил что-то важное о команде или у вас остались вопросы, спрашивайте в комментариях!

Creative Commons License
Статья Команда wget Linux распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (10 оценок, среднее: 4,90 из 5)
Загрузка...

10 комментариев

  1. chip Май 7, 2016 Ответить
    • admin Май 8, 2016 Ответить
  2. kroman Май 8, 2016 Ответить
  3. Влад Май 9, 2016 Ответить
    • admin Май 9, 2016 Ответить
  4. pro1ix Июнь 9, 2016 Ответить
  5. Анна Сентябрь 25, 2016 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: