wget | Русскоязычная документация по Ubuntu
Содержание
wget
Примеры
Опции
Ссылки
wget
— текстовая программа для скачивания файлов.
Если возможностей wget не хватает, то можно использовать curl.
Примеры
Просто скачать файл wget-ом:
wget ftp://vasya.pupkin.com/film.avi
Для продолжения оборвавшейся закачки пишем:
wget -c ftp://vasya.pupkin.com/film.avi
или
wget --continue ftp://vasya.pupkin.com/film.avi
Как и в других программах, ключи имеют короткую и длинную формы, и вместо -с
можно написать -continue
. Длинные ключи проще запомнить, но дольше писать. Можно легко смешивать различные формы написания.
Чтобы выкачать файлы из списка, содержащего прямые ссылки:
wget -i pupkinlist.txt
или
wget --input-file=pupkinlist.txt
Здесь указывается только файл, в котором содержатся ссылки. Файл может так же быть HTML-страницей, в которой есть ссылки. Они будут выкачаны указанной выше командой.
Использование а-ля «Teleport Pro for Linux».
При скачивании веб-сайтов возможностей больше, и поэтому требуется больше ключей. Опять-таки, запоминать их все не обязательно, можно сделать скрипт (а лучше несколько — под разные случаи) и вызывать их.
Так вот, если имеется веб-сайт, и хотелось бы иметь его локальную копию на компьютере, чтобы, отключившись от сети, можно было не торопясь его почитать.
Зеркалирование сайтов на локальную машину:
wget -m http://www.vasyapupkin.com/
-m
эквивалентно -r -N -l inf -nr
, эти опции описаны ниже.
При этом ссылки останутся абсолютными — то есть, будут указывать на Интернет-адреса, и удобно просматривать на локальной машине будет затруднительно.
Копирование сайта для локального просмотра (с заменой интернет-ссылок на локальные адреса скачанных страниц):
wget -r -l0 -k http://www.vasyapupkin.com/
При этом будет включена рекурсивная выгрузка (ключ -r, –recursive),
Опции
В wget имеется большое количество полезных опций — побольше, чем у Teleport’а флажков. Будучи завёрнутым в скрипт, например, teleport
и положенным на видное место (указанное в PATH
), имеем удобство применения и богатство настроек.
-np
, –no-parent
— не подниматься выше начального адреса при рекурсивной загрузке.
-r
, –recursive
— включить рекурсивный просмотр каталогов и подкаталогов на удалённом сервере.
-l <depth>
, –level=<depth>
— определить максимальную глубину рекурсии равной depth при просмотре каталогов на удалённом сервере. По умолчанию depth=5.
-np
, –no-parent
— не переходить в родительский каталог во время поиска файлов. Это очень полезное свойство, поскольку оно гарантирует, что будут копироваться только те файлы, которые расположены ниже определённой иерархии.
-A <acclist>
, –accept <acclist>
, -R <rejlist>
, –reject <rejlist>
— список имен файлов, разделенных запятыми, которые следует (accept) или не следует (reject) загружать. Разрешается задание имен файлов по маске.
-k
, –convert-links
— превратить абсолютные ссылки в HTML документе в относительные ссылки. Преобразованию подвергнутся только те ссылки, которые указывают на реально загруженные страницы; остальные не будут преобразовываться. Заметим, что лишь в конце работы wget сможет узнать какие страницы были реально загружены. Следовательно, лишь в конце работы wget будет выполняться окончательное преобразование.
–http-user=<user>
, –http-passwd=<password>
— указать имя пользователя и пароль на HTTP-сервере.
-H
, –span-hosts
— разрешает посещать любые сервера, на которые есть ссылка.
-p
, –page-requisites
— загружать все файлы, которые нужны для отображения страниц HTML. Например: рисунки, звук, каскадные стили (CSS
-r
и -l
, указанные вместе могут помочь, но т.к. wget не различает внешние и внутренние документы, то нет гарантии, что загрузится все требуемое.Руководство по работе с wget — статья на форуме
man wget — документация на русском языке
Программа wget — простое описание возможностей
GNU Wget: документация и FAQ
сетевые приложения, интернет, консоль, ПО
Команда Wget в Linux с примерами
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
начинает с разрешения 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
нужно сохранить 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/
Приведенная выше команда 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
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 в Linux — Параметры + примеры
Команда wget — это бесплатная утилита, используемая для загрузки файлов из Интернета. Это особенно полезно, когда вы работаете с безголовой системой Linux, которая не предоставляет графический интерфейс. Команда GNU wget позволяет загружать несколько файлов или один файл, используя различные протоколы, такие как протоколы HTTP, HTTPS и FTP.
В этом руководстве мы узнаем о команде wget в Linux и объясним ее параметры на примерах.
Как установить команду wget в Linux
В настоящее время команда GNU wget предустановлена в современных дистрибутивах Linux, поэтому вам не нужно ее устанавливать. Чтобы убедиться, что wget установлен, выполните команду:
wget --version
Если по какой-либо причине wget не установлен, вы можете установить его с помощью менеджеров пакетов в различных дистрибутивах Linux следующим образом.
Установите wget в Debian/Ubuntu
В дистрибутивах Debian и Ubuntu выполните команду:
sudo apt install wget
Установите wget на Fedora / Rocky Linux / AlmaLinux
Для Fedora и дистрибутивов на основе RHEL, таких как Rocky Linux и AlmaLinux, выполните команду:
sudo dnf install wget
Для потоков RHEL и CentOS вы можете использовать тот же менеджер пакетов DNF.
Установите wget в Arch Linux
Для Arch Linux и других дистрибутивов на основе Arch, таких как Manjaro, выполните:
sudo pacman -Sy wget
Установите wget в SUSE Linux
В SUSE Linux выполните команду:
sudo zypper install wget
Как запустить команду wget в Linux
Основной синтаксис команды wget:
wget ОПЦИИ URL
Чтобы запустить wget, просто введите wget следующий вариант и URL из терминала.
Вот некоторые из наиболее часто используемых параметров команды wget.
9Опции | Описание | |
---|---|---|
-m , --зеркало | Загружает зеркальную копию веб-сайта, включая все файлы веб-сайта | |
-O (верхний регистр) | Загружает файл, используя другое имя файла | |
9006 2 -b , --фон | Загружает файл в фоновом режиме и освобождает терминал | |
-i , --input-file | Загружает файлы, указанные в URL-адресах, в локальном или внешнем файле | |
Возобновляет загрузку частично загруженного файла 7 | ||
--limit-rate | Ограничение скорости загрузки при загрузке файла | Установить пароль FTP на PASS |
--no-check-certificate | Пропускает проверку сертификата SSL | |
--user-agent | Изменяет браузер UserAgent 9 0066 | |
-V , --версия | Отображает версию wget | |
-h , --help | Отображает все параметры и использование команды wget Примеры На примерах давайте рассмотрим различные способы использования команды wget в командной строке. Загрузка веб-страницы Вы можете загрузить зеркальную копию веб-сайта с помощью параметра wget -m https://example.com Вы можете передать несколько аргументов, чтобы использовать загруженный сайт для локального просмотра. Параметр wget -m -k -p https://example.com Загрузка файла с помощью wgetВ самой простой форме, без каких-либо параметров команды, команда GNU wget загружает ресурс или файл с указанного URL-адреса на текущий рабочий каталог. В приведенном ниже примере мы загружаем zip-файл wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip В процессе загрузки команда wget разрешает указанное доменное имя и подключается к удаленному сервер. Установив соединение с удаленным сервером, wget отправляет HTTP-запрос на веб-сервер. Об этом свидетельствует строка вывода « HTTP-запрос отправлен, ожидание ответа ». При получении запроса сервер отвечает и начинается загрузка файла. Файл, наконец, загружен в ваш текущий каталог. Чтобы просмотреть загруженный файл, используйте команду ls следующим образом. лс -л | grep -i phpmyadmin Загрузка файла под другим именем Без каких-либо параметров команды имя загружаемого файла отображается точно так же, как на удаленном сервере. Часто загруженные файлы имеют сложные имена, состоящие из большого количества символов. Чтобы загрузить и сохранить файл под другим именем, используйте параметр В этом примере мы загрузили тот же файл и сохранили его как wget -O phpmyadmin.zip https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip Загрузка файла в другой каталог До сих пор мы видели, что команда wget загружает файлы в текущую структуру каталогов. Предположим, вы хотите загрузить файл в другой каталог. Для этого установите префикс каталога с помощью параметра В следующей команде мы загружаем двоичный файл Go с именем wget -P /tmp/ https://go.dev/dl/go1.17.6.linux-amd64.tar.gz Ограничение скорости загрузки По умолчанию команда wget использует всю пропускную способность для загрузки файлы. Чтобы ограничить скорость загрузки, используйте параметр В приведенном ниже примере нам удалось ограничить скорость загрузки бинарного файла Go до 1 мегабайта в секунду. wget --limit-rate=1m https://go.dev/dl/go1.17.6.linux-amd64.tar.gz Возобновление загрузки файла после сбояИногда вы будете сталкиваться с ситуациями, когда файл скачать не получается. Это может быть вызвано несколькими причинами, такими как нестабильное сетевое соединение или сетевая ошибка. Когда во время загрузки файла происходит прерывание, это приводит к частичной загрузке файла. Неполный загруженный файл обычно считается поврежденным файлом. К счастью, команда wget предоставляет параметр В этом примере мы смоделировали неудачную загрузку файла, нажав Чтобы возобновить частично загруженный файл, мы будем использовать параметр wget -c https://download.owncloud.org/community/owncloud-complete-latest. Если удаленный HTTP-сервер не поддерживает возобновление загрузки файла, тогда wget начнет загрузку заново и перезаписать существующий файл. Загрузка файла в фоновом режимеЕсли время имеет решающее значение и вы хотите продолжить выполнение других задач на терминале, вы можете подумать о загрузке файла в фоновом режиме. Это освобождает терминал и позволяет продолжить выполнение других задач. Для загрузки файлов в фоновом режиме используйте параметр wget -b https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.1.tar.xz Если выходной файл не указан с помощью параметра tail -f wget-log Изменение пользовательского агента wget Каждый раз, когда вы посещаете веб-сайт из веб-браузера, пользовательский агент браузера, который представляет собой строку текста, передает информацию о браузере и операционной системе на веб-сервер. Иногда веб-серверы могут блокировать пользовательские агенты некоторых веб-браузеров. В таких случаях вы можете эмулировать User-Agent другого браузера, используя параметр Следующая команда эмулирует wget --user-agent="Mozilla/5.0 (X11; Linux i686; rv:96.0) Gecko/20100101 Firefox/96.0" http://example.com Загрузка нескольких файлов Иногда вы можете хотите загрузить несколько файлов одновременно, чтобы сэкономить время. Простой способ добиться этого — сохранить список URL-адресов в простом текстовом файле. Затем используйте параметр Чтобы уточнить это, мы уже сохранили два URL-адреса в текстовом файле с именем 9. cat download.txt Чтобы загрузить все файлы, мы выполним следующую команду с параметром wget -i download.txt Загрузка файлов с помощью FTPКоманда Wget также может использоваться для загрузки файлов с FTP-серверов. При загрузке файлов с FTP-сервера, защищенного паролем, используйте: wget --ftp-user=FTP_ИМЯ_ПОЛЬЗОВАТЕЛЯ --ftp-password=FTP_ПАРОЛЬ ftp://ftp.example.com/filename.tar.gz Пропустить проверку сертификатов В редких случаях вы обнаружите, что загружаете файлы с HTTPS-сайтов с недействительными SSL-сертификатами. В командной строке это может быть проблемой, и вы столкнетесь с Чтобы обойти проверку сертификата и загрузить файл, используйте параметр wget --no-check-certificate https://site-with-invalid-ssl-certificate. ЗаключениеКоманда Wget — это утилита командной строки, используемая во многих Unix-подобных операционных системах для загрузки файлов из Интернет. Он поддерживает HTTP, HTTPS и FTP и удобен при загрузке файлов из командной строки, особенно когда вы подключены к безголовому серверу, который не предоставляет графический интерфейс. В этом руководстве мы рассмотрели довольно много примеров команд wget. Команда Linux wget — Учебные пособия и инструкции Wget — это бесплатная утилита командной строки Linux, которая помогает нам получать или загружать файлы из Интернета. Он извлекает файлы по протоколам FTP, HTTP и HTTPS. Команда может поддерживать нестабильные и медленные сетевые соединения. Если во время загрузки происходит прерывание сети, wget может возобновить загрузку с того места, где она была остановлена. Wget не интерактивен, поэтому может работать в фоновом режиме. Это позволяет вам начать загрузку, отключиться от системы и позволить wget завершить ее. Команда Wget следует приведенному ниже синтаксису. $ wget [опция][URL] Флаг [опция] позволяет указать действие, которое необходимо выполнить с помощью команды wget. Флаг [URL] указывает на адрес каталога, файла или веб-страницы, которую вы хотите загрузить. 1) Проверьте, установлен ли wget Wget предустановлен в большинстве систем Linux. Чтобы проверить, установлена ли программа, введите в терминале следующую команду: $ wget Если wget установлен, выходные данные уведомляют вас о том, что в команде wget отсутствует URL-адрес, как показано ниже. Если вы получите вывод « команда wget не найдена», загрузите и установите ее вручную. Инструкции по установке для различных дистрибутивов Linux: Для Ubuntu/Debian Для установки wget в дистрибутивы на основе Ubuntu или Debian. $ sudo apt-get install wget Для CentOS/RHEL Чтобы установить wget на CentOS/RHEL, выполните команду $ sudo yum install wget900 02 Для Fedora 22 и более поздних версий Для установки wget в Fedora выполните команду: $ sudo dnf install wget Теперь давайте переключим передачу и посмотрим на несколько примеров команды wget в Linux. 1) Загрузка файлов с помощью команды wgetЧтобы загрузить файл из Интернета, используйте синтаксис: $ wget [URL] Например, чтобы загрузить последний zip-файл WordPress, выполните команду: $ wget 9036 3 https: //wordpress.org/latest.zip 2) Загрузить файл в определенный каталог По умолчанию команда wget загружает файл в каталог, в котором в данный момент находится пользователь. $ wget –P [каталог_назначения] [URL] Например, чтобы установить Git на Ubuntu, вы можете выбрать загрузку zip-пакета в каталог /tmp , как показано. $ wget –P /tmp https://github.com/git/git/archive/master.zip 3) Загрузить несколько файлов загружать несколько файлов одновременно с помощью параметра $ wget –i [имя_файла] В следующем примере мы загружаем ISO-образы Ubuntu, Fedora и CentOS: Итак, сначала создайте файл linux.txt. $ vim linux.txt Затем добавьте в редакторе URL-адреса пакетов, которые вы хотите загрузить, в отдельной строке. После этого сохраните и выйдите из текстового редактора. И, наконец, выполните следующую команду, чтобы загрузить несколько файлов в только что созданный файл nano: $ wget -i linux.txt4) Загрузить файл и сохранить под определенным именем Чтобы загрузить файл и сохранить его под указанным именем в вашей системе, используйте параметр -o в показанном синтаксисе $ wget –O [ имя_файла] [URL] Например, чтобы загрузить tomcat и сохранить его в каталоге tomcat.zip: $ wget -O tomcat.zip http://apache.cs.utah.edu/tomcat/tomcat-9/v9 .0.20/bin/apache-tomcat-9.0.20.tar.gz 5) Возобновление загрузкиwget может возобновить загрузку с того места, где она была остановлена до прерывания, используя параметр -c , как показано $ wget –c [URL] В следующем примере мы возобновляем загрузку ISO-файла Ubuntu после разрыва соединения: $ wget –c https://releases. 6) Установите скорость загрузки с помощью wget Чтобы установить скорость загрузки, чтобы она не использовала всю доступную полосу пропускания, используйте синтаксис: $ wget --limit-rate [wanted_speed] [URL] Скорость загрузки может быть установлена в килобайтах (k) и мегабайтах (m), гигабайтах (g). Например, чтобы загрузить terraform и ограничить скорость до 500 килобайт: $ wget --limit-rate 500k https://releases.hashicorp.com/terraform/0.12.2/terraform_0.12.2_linux_amd64.zip 7) Создание зеркала веб-сайта Чтобы загрузить весь веб-сайт из Интернета в формате HTML с помощью wget, используйте параметр –m . При этом создается локальная копия веб-сайта, а также ресурсов веб-сайта (JavaScript, CSS, изображения). Используйте синтаксис: $ wget –m [URL] Например: $ wget –m https: //sample. |