Команда Wget в Linux с примерами

Команда Wget

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

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

Установка Wget

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

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

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

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

 sudo apt install wget

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

 sudo yum 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

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

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

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

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

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

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

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

Приведенная выше команда сохранит последний zip-файл hugo из GitHub как 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

Приведенная выше команда указывает wget сохранить файл CentOS 7 iso в каталоге /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

Изменение User-Agent Wget

Иногда при загрузке файла удалённый сервер может быть настроен на блокировку User-Agent 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-адрес должен располагаться на отдельной строке.

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

 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_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

Заключение

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

Чтобы узнать больше о Wget, посетите страницу руководства GNU wget .

терминал wget

Связанные руководства

Источник

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

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