Команда wget в linux

Обновлено: 02.07.2024

В этой статье показано, как использовать команду wget на практических примерах и подробных объяснениях наиболее распространенных параметров.

Установка Wget

Пакет wget предустановлен на сегодняшний день в большинстве дистрибутивов Linux.

Чтобы проверить, установлен ли пакет Wget в вашей системе, откройте консоль, введите wget и нажмите Enter. Если у вас установлен wget, система напечатает wget: missing URL . В противном случае он напечатает wget command not found .

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

Установка Wget в Ubuntu и Debian

Установка Wget на CentOS и Fedora

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

Прежде чем перейти к использованию команды wget , давайте начнем с обзора основного синтаксиса.

Выражения утилиты wget имеют следующую форму:

Как скачать файл с помощью wget

В простейшей форме, при использовании без какой-либо опции, wget загрузит ресурс, указанный в [url], в текущий каталог.

В следующем примере мы загружаем tar-архив ядра Linux:

Как вы можете видеть на изображении выше, wget начинает с разрешения IP-адреса домена, затем подключается к удаленному серверу и начинает передачу.

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

Чтобы отключить вывод, используйте параметр -q .

Если файл уже существует, wget добавит .N (число) в конец имени файла.

Сохранение загруженного файла под другим именем

Чтобы сохранить загруженный файл под другим именем, передайте параметр -O за которым следует выбранное имя:

Приведенная выше команда сохранит последний zip-файл hugo с GitHub как latest-hugo.zip вместо его исходного имени.

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

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

Приведенная выше команда сообщает wget нужно сохранить iso-файл CentOS 7 в каталог /mnt/iso .

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

Чтобы ограничить скорость загрузки, используйте параметр --limit-rate . По умолчанию скорость измеряется в байтах в секунду. Добавьте k для килобайт, m для мегабайт и g для гигабайт.

Следующая команда загрузит двоичный файл Go и ограничит скорость загрузки до 1 МБ:

Эта опция полезна, если вы не хотите, чтобы wget занимал всю доступную полосу пропускания.

Возобновление загрузки

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

В следующем примере мы возобновляем загрузку iso-файла Ubuntu 18.04:

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

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

Для загрузки в фоновом режиме используйте параметр -b . В следующем примере мы загружаем iso-файл OpenSuse в фоновом режиме:

По умолчанию вывод перенаправляется в файл wget-log в текущем каталоге. Чтобы посмотреть статус загрузки, используйте команду tail :

Смена пользовательского агента Wget

Иногда при загрузке файла удаленный сервер может быть настроен на блокировку агента пользователя Wget. В подобных ситуациях для эмуляции другого браузера передайте параметр -U .

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

Если вы хотите загрузить несколько файлов одновременно, используйте параметр -i за которым следует путь к локальному или внешнему файлу, содержащему список URL-адресов для загрузки. Каждый URL-адрес должен быть в отдельной строке.

В следующем примере показано, как загрузить iso-файлы Arch Linux, Debian и Fedora, используя URL-адреса, указанные в linux-distros.txt :

Если вы укажете - в качестве имени файла, URL-адреса будут считываться из стандартного ввода.

Скачивание через FTP

Чтобы загрузить файл с FTP-сервера, защищенного паролем, укажите имя пользователя и пароль, как показано ниже:

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

Чтобы создать зеркало веб-сайта с помощью wget , используйте параметр -m . Это создаст полную локальную копию веб-сайта, следуя и загружая все внутренние ссылки, а также ресурсы веб-сайта (JavaScript, CSS, изображения).

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

Параметр -k заставит wget преобразовать ссылки в загруженных документах, чтобы сделать их пригодными для локального просмотра. Параметр -p сообщает wget нужно загрузить все необходимые файлы для отображения HTML-страницы.

Пропуск проверки сертификата

Загрузка на стандартный вывод

В следующем примере wget незаметно (флаг -q ) загрузит и выведет последнюю версию WordPress на стандартный вывод (флаг -O - ) и направит ее в утилиту tar , которая распакует архив в каталог /var/www .

Выводы

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

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

Синтаксис 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 скачает один файл и сохранит его в текущей директории. Во время загрузки мы увидим прогресс, размер файла, дату его последнего изменения, а также скорость загрузки:

wget1

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

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

wget2

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

wget3

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

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

wget -i /wget/tmp.txt

wget4

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

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

wget5

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

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

wget6

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

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

wget7

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

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

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

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

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

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

wget8

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

wget7

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

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

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

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

wget -Q10m -i download-list.txt

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

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

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

Выводы

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

Все мы иногда качаем файлы из интернета. Если для этого использовать программы с графическим интерфейсом, то всё оказывается предельно просто. Однако, при работе в командной строке Linux дело несколько усложняется. Особенно — для тех, кто не знаком с подходящими инструментами. Один из таких инструментов — чрезвычайно мощная утилита wget, которая подходит для выполнения всех видов загрузок. Предлагаем вашему вниманию двенадцать примеров, разобрав которые, можно освоить основные возможности wget.




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

Если всё, что нужно — это загрузка одного файла, нам подойдёт следующая конструкция:


После ввода такой команды начнётся скачивание Nagios Core. В ходе этого процесса можно будет видеть данные о загрузке, например — сведения о том, какой объём данных уже загружен, текущую скорость, и то, сколько времени осталось до конца загрузки.

2. Загрузка файла и сохранение его с новым именем

Если мы хотим сохранить загруженный файл под именем, отличающимся от его исходного имени, нам пригодится команда wget с параметром -O :


При таком подходе загруженный файл будет сохранён под именем nagios_latest .

3. Ограничение скорости загрузки файлов

При необходимости скорость загрузки файлов с помощью wget можно ограничить. В результате эта операция не будет занимать весь доступный канал передачи данных и не повлияет на другие процессы, связанные с сетью. Сделать это можно, используя параметр --limit-rate и указав ограничение скорости, выраженное в байтах (в виде обычного числа), килобайтах (добавив после числа K ) или мегабайтах ( M ) в секунду:


Здесь задано ограничение скорости загрузки, равное 500 Кб/с.

4. Завершение прерванной загрузки

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


Если этот параметр не использовать, то загрузка недокачанного файла начнётся сначала.

5. Фоновая загрузка файла

Если вы загружаете файл огромного размера и хотите выполнять эту операцию в фоне, сделать это можно, используя параметр -b :

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

Если имеется список URL файлов, которые надо загрузить, но вам не хочется вручную запускать загрузки этих файлов, можно использовать параметр -I . Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:


В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить wget , передав этой утилите только что созданный файл со списком загрузок:


Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.

7. Увеличение общего числа попыток загрузки файла

Для того, чтобы настроить число повторных попыток загрузки файла, можно использовать параметр --tries :

8. Загрузка файлов с FTP-сервера

Команда загрузки файла с анонимного FTP-сервера с помощью wget выглядит так:


Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:

9. Создание локальной копии веб-сайта

Если нужно загрузить содержимое целого веб-сайта, сделать это можно, воспользовавшись параметром --mirror :


Обратите внимание на дополнительные параметры командной строки:

  • -p : производится загрузка всех файлов, необходимых для корректного отображения HTML-страниц.
  • --convert-links : ссылки в документах будут преобразованы для целей локального просмотра сайта.
  • -P /home/dan : материалы будут сохранены в папку /home/dan .

10. Загрузка с сайта только файлов определённого типа

Для того, чтобы загрузить с сайта только файлы определённого типа, можно воспользоваться параметрами -r -A :

11. Пропуск файлов определённого типа

Если вы хотите скопировать целый веб-сайт, но при этом вам не нужны файлы определённого типа, отключить их загрузку можно с помощью параметра --reject :

12. Загрузка с использованием собственного .log-файла

Для того, чтобы загрузить файл и использовать при этом собственный .log -файл, воспользуйтесь параметром -o и укажите имя файла журнала:

Итоги

Wget — довольно простая в использовании, но весьма полезная утилита Linux. И, на самом деле то, о чём мы рассказали — лишь малая часть того, что она умеет. Надеемся, этот обзор поможет тем, кто не был знаком с wget, оценить эту программу, и, возможно, включить её в свой повседневный арсенал инструментов командной строки.

Команда wget

Утилита wget (или команда wget) предназначена для скачивания файлов, веб страниц и других ресурсов из интернета. Рассмотрим основные возможности команды wget на примерах.

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

Команда wget имеет следующий синтаксис:

В простейшем случае, чтобы скачать файл, достаточно указать URL-адрес:

Указание нового имени файла

Используя опцию -O можно задать название результирующего файла.

Например, если файл, который вы скачиваете, имеет имя filename-1.3.0-release-branch.tar , вы можете сохранить его с именем filename.tar :

Скачивание в фоновом режиме

Чтобы скачать файл в фоновом режиме используется опция -b :

Скачивание нескольких файлов (по списку)

Команде wget можно передать текстовый файл, в котором на каждой строчке записаны URL-адреса, которые требуется скачать. Для этого используется опция -i :

Скачивание файлов по ссылкам в HTML-документе

Команда wget поддерживает скачивание файлов по ссылкам в HTML-документе. То есть она автоматически находит все ссылки в HTML-файле и скачивает их:

Ограничение скорости скачивания

Чтобы ограничить скорость скачивания используется опция --limit-rate .

500k означает 500KB/s.

В качестве значения --limit-rate можно указывать скорость загрузки в следующих форматах:

  • байтах в секунду — например: 300
  • килобайтах в секунду — например: 10k
  • мегабайтах в секунду- например: 10.5m

Продолжение загрузки

Чтобы продолжить прервавшуюся загрузку используется опция -c :

Проверка существования файла

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

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

Также можно проверить доступен ли конкретный файл:

При использовании опции --spider файлы не скачиваются, а только выполняется проверка.

Как скачать сайт

Инструкцию по скачиванию сайтов с помощью wget смотрите в отдельной статье: Скачиваем сайты целиком — утилита wget

Скачивание с FTP (указание логина и пароля)

Чтобы скачать файл с FTP-сервера, для которого требуется указание логина и пароля, используются опции --ftp-user и --ftp-password :

Указание количества попыток

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

По умолчанию установлено количество попыток — 20. Но если при попытке загрузки файла получена ошибка 404 (файл не найден) или connection refused, то скачивание прерывается.

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

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

Некоторые веб-сайты умеют распознавать автоматические запросы к сайту, которые происходят с заданной периодичностью. Поэтому даже использование опции -w не всегда помогает. В таких случаях можно воспользоваться дополнительной опцией --random-wait . При ее использовании ожидание перед загрузкой очередного файла составляет случайное количество секунд от 0.5*wait до 1.5*wait. Пример использования (ожидание будет в диапазоне от 15 до 45 секунд):

Указание нескольких опций

В примерах выше мы использовали опции по отдельности. Можно использовать несколько опций в одной команде одновременно, например:

Заключение

Мы рассмотрели только базовые возможности команды wget по скачиванию файлов. Полный список всех опций и их описание можно получить, выполнив в командной строке:

Читайте также: