Как пользоваться Wget в Ubuntu 18.04 и других Linux-системах

Ubuntu. Использование команды Wget

Дата Автор Оставить комментарий 9 365 просмотров

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

Что такое Wget

Wget — консольная программа для загрузки файлов из интернета, позволяющая скачивать файлы по протоколам HTTP, HTTPS и FTP.

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

Установка Wget

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

Но если wget отсутствует в системе, то его можно загрузить при помощи менеджера пакетов.

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

sudo apt-get install wget

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

sudo yum install wget

Синтаксис команд для Wget

Перед началом использования консольной утилиты wget стоит ознакомиться с используемым ей форматом команд.

В общем случае синтаксис команд для wget выглядит так:

wget [options] [url]

где «options» — дополнительные опции, а «url» — ссылка на файл или директорию, которую вы хотите скачать.

Как скачать файл при помощи Wget

Простейший вариант использования wget — скачивание файла в текущую директорию без всяких опций.

В качестве примера рассмотрим команду для скачивания архива с ядром Linux:

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

При ее использовании wget определяет сопоставляет домен с IP-адресом сервера, подключается к этому серверу и начинает загрузку данных.

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

Чтобы не выводить всю эту информацию в консоль можно запустить wget с опцией -q:

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

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

Как сохранить скачиваемый файл под другим именем

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

wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip

В данном примере с GitHub скачивается архив с движком Hugo (master.zip) и сохраняется на компьютере под названием latest-hugo.zip

Как скачать файл в определенную директорию

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

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

В данном примере файл с образом дистрибутива CentOS 7 будет скачан в директорию /mnt/iso/.

Как ограничить скорость скачивания

Для ограничения скорости загрузки можно воспользоваться опцией —limit-rate (обратите внимание: два дефиса в начале), указав предел допустимой скорости в байтах, килобайтах (суффикс k) или мегабайтах (суффикс m):

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

В вышеприведенных примерах скорость загрузки будет ограничена до 1 мегабайта или 1024 килобайт в секунду.

Как возобновить загрузку

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

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

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

Как скачивать файлы в фоне

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

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

Это полезно если вы загружаете какой-то крупный файл и во время его загрузки хотите продолжать пользоваться консолью.

Как изменить User-Agent при скачивании

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

Как быть в таких ситуациях? Эмулировать User-Agent какого-нибудь распространенного браузера при помощи опции -U:

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

В примере выше wget будет скачивать содержимое сайта http://wget-forbidden.com/, эмулируя браузер Firefox 60.

Как скачивать сразу несколько файлов

Для одновременной загрузки нескольких файлов можно воспользоваться опцией -i и задать путь к текстовому файлу со списку URL для загрузки:

wget -i linux-distros.txt

Содержимое файла 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-password=ВАШ_ПАРОЛЬ ftp://ftp.example.com/filename.tar.gz

Как скачать сайт при помощи Wget

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

wget -m https://example.com

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

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

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

Как пропустить проверку SSL-сертификата

Если нужно скачать файл по HTTPS-протоколу с ресурса, обладающего некорректным SSL-сертификатом (распространенный пример — владелец поставил вручную бесплатный сертификат от Let’s Encrypt и забыл продлить его спустя три месяца), то можно воспользоваться опцией —no-check-certificate (опять-таки, два дефиса в начале):

wget --no-check-certificate https://invalid-ssl-website.com

Заключение

Несмотря на кажущуюся незамысловатость, wget — довольно навороченная утилита.

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

Если этого недостаточно — можно ознакомиться с официальным руководством по Wget.

Автор статьи:
Дмитрий
Руководитель отдела в IT-компании. Веду этот блог с 2013 года, пишу о гаджетах и домашней автоматизации, обозреваю одноплатные компьютеры, неспешно собираю «умный дом».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

[Хамство, оскорбления и попытки крауд-маркетинга будут удалены]