GNU Wget — это утилита командной строки для загрузки файлов из Интернета. С помощью Wget вы можете загружать файлы по протоколам HTTP, HTTPS и FTP. Wget предоставляет ряд опций, позволяющих загружать несколько файлов, возобновлять загрузку, ограничивать пропускную способность, рекурсивную загрузку, загружать в фоновом режиме, зеркалировать веб-сайт и многое другое.

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

Установка Wget

В настоящее время пакет wget предустановлен в большинстве дистрибутивов Linux.

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

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

sudo apt install wget

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

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

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

wget [options] [url]
  • options- Параметры Wget
  • url- URL-адрес файла или каталога, который вы хотите загрузить или синхронизировать.

Как скачать файл сwget

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

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

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz

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

Во время загрузки wgetотображается индикатор выполнения вместе с именем файла, размером файла, скоростью загрузки и предполагаемым временем завершения загрузки. После завершения загрузки вы можете найти загруженный файл в текущем рабочем каталоге. Чтобы отключить вывод, используйте -qопцию. Если файл уже существует, в конце имени файла wgetбудет добавлено (число)..N

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

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

wget -O lates.zip https://unetway.com/example.zip

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

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

wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso

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

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

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

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

wget --limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

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

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

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

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

wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

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

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

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

wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso

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

tail -f wget-log

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

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

wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/

Копировать

Приведенная выше команда будет эмулировать Firefox 60, запрашивая страницу изwget-forbidden.com

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

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

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

wget -i 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_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz

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

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

wget -m https://example.com

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

wget -m -k -p https://example.com

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

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

Если вы хотите загрузить файл по HTTPS с хоста с недействительным SSL-сертификатом, используйте --no-check-certificateопцию:

wget --no-check-certificate https://domain-with-invalid-ss.com

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

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

wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www