- Руководство по использованию Wget в Linux с примерами
- Установка Wget
- Синтаксис и опции Wget
- Скачать файл
- Сохранить файл в специальный каталог
- Сохранить файл с другим именем
- Скачать несколько файлов
- Взять URL из файла (загрузка из файла)
- Продолжить загрузку
- Загрузка файлов в фоне
- Ограничение скорости загрузки
- Количество повторных попыток
- Подключение по логину и паролю
- Квота загрузки
- Загрузить и выполнить
- Поиск битых ссылок
- Скачать пронумерованный файлы
- Скачать сайт
- Изучаем команду wget на 12 примерах
- 1. Загрузка одного файла
- 2. Загрузка файла и сохранение его с новым именем
- 3. Ограничение скорости загрузки файлов
- 4. Завершение прерванной загрузки
- 5. Фоновая загрузка файла
- 6. Загрузка нескольких файлов
- 7. Увеличение общего числа попыток загрузки файла
- 8. Загрузка файлов с FTP-сервера
- 9. Создание локальной копии веб-сайта
- 10. Загрузка с сайта только файлов определённого типа
- 11. Пропуск файлов определённого типа
- 12. Загрузка с использованием собственного .log-файла
- Итоги
Руководство по использованию Wget в Linux с примерами
Wget — это утилита командной строки GNU для загрузки файлов из Интернета с использованием протоколов HTTP, HTTPS, FTP, SFTP. Wget работает и через прокси, и даже в фоновом режиме. Часто используется для скачивания как отдельных файлов, так и целых сайтов.
Установка Wget
Для начала проверим, установлен ли в системе Wget. Введём в терминале:
Если wget установлен, то мы увидим примерно такое сообщение:
wget: отсутствует URL Использование: wget [ПАРАМЕТР]. [URL]. Дополнительные параметры выводятся по команде «wget --help».
Если же wget не установлен, вывод будет таким:
В таком случае необходимо установить нужное ПО:
sudo yum install -y wget // CentOS7/RHEL 7/Fedora sudo dnf install -y wget // CentOS8/RHEL8/Rocky Linux8 sudo apt install -y wget // Ubuntu/Debian sudo pacman -S wget // Arch Linux sudo zypper install wget // OpenSUSE
Синтаксис и опции Wget
Команда wget имеет следующий синтаксис:
Опции являются необязательными, но в большинстве случаев они используются для более тонкой настройки параметров загрузки.
Синтаксис опций очень свободный. У каждой опции, как правило есть как длинное, так и короткое имя. Их можно записывать как до URL, так и после. Между опцией и ее значением не обязательно ставить пробел, например вы можете написать -o log или -olog . Эти значения эквивалентны. Также если у опций нет параметров, не обязательно начинать каждую с дефиса, можно записать их все вместе: -drc и -d -r -c . Эти параметры wget тоже эквивалентны.
Основные (список не полный) опции Wget:
- -V (—version) — вывести версию программы
- -h (—help) — вывести справку
- -b (—background) — работать в фоновом режиме
- -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 http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz
Сохранить файл в специальный каталог
Можно скачать файл и поместить его в другом каталоге, используя опцию -P :
wget -P ~/Download wget.tar.gz http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz
Сохранить файл с другим именем
Опция -О позволяет задать имя сохраняемому файлу, например, скачать файл wget2-latest.tar.gz с именем wget.tar.gz :
wget -O wget.tar.gz http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz
Скачать несколько файлов
Можно скачать несколько файлов одной командой даже по разным протоколам, просто указав их URL:
wget http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz.sig
В данном примере мы скачали два файла по протоколам HTTP и FTP.
Взять URL из файла (загрузка из файла)
Можно сохранить несколько URL в файл, а затем загрузить их все, передав файл опции -i . Например создадим файл links.txt , со ссылками для загрузки:
Продолжить загрузку
Если загружался большой файл, и во время загрузки было потеряно соединение, то можно скачать файл с помощью опции -c :
wget -c http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz
Загрузка файлов в фоне
Для файлов особо большого размера может оказаться полезной опция -b . Она установит скачивание в фоновом режиме.
wget -b http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz
В каталоге, из которого запускался wget появится wget-log файл, который может быть использован для проверки прогресса и статуса вашего скачивания.
Эта команда тоже будет полезной
# директория, в которой запускается wget tail -f wget-log
Ограничение скорости загрузки
Wget позволяет не только продолжать загрузку файлов, но и ограничивать скорость загрузки. Для этого есть опция —limit-rate .
Это полезно, когда необходимо скачать большой файл. Мы предотвращаем полное использования канала. Например, ограничим скорость загрузки до 500 килобит + установим флаг для фонового скачивания:
wget --limit-rate=500k -b https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.6.0-amd64-netinst.iso
Количество повторных попыток
Проблемы подключения к интернету могут привести к прерыванию загрузки. Чтобы этого избежать можно повысить количество повторных попыток с опцией -tries :
wget -tries http://ftp.gnu.org/gnu/wget/wget2-latest.tar.gz
Подключение по логину и паролю
Некоторые ресурсы требуют аутентификации, для загрузки их файлов. С помощью опций —http-user=username , —http-password=password и —ftp-user=username , —ftp-password=password можно задать имя пользователя и пароль для HTTP или FTP ресурсов.
wget --ftp-user=YOUR_USERNAME --ftp-password=YOUR_PASSWORD ftp://example.com/something.tar
Квота загрузки
Если доступно только ограниченное количество трафика, можно указать какое количество информации можно скачивать, например разрешим скачать файлов из списка только на десять мегабайт:
wget -Q 10m -i ~/Wget/links.txt
Загрузить и выполнить
Можно сразу же выполнять скачанные скрипты:
wget -O - https://site.com/script.sh | bash
Если опции -O не передать аргументов, то скачанный файл будет выведен в стандартный вывод, затем мы его можем перенаправить с интерпретатор bash , как показано выше.
Поиск битых ссылок
wget -o wget-log -r -l 5 --spider https://site.com
Теперь мы можем изучить файл wget-log для поиска списка битых ссылок. Вот команда для этого:
grep -B 2 '404' wget-log | grep "http" | cut -d " " -f 4 | sort -u
Скачать пронумерованный файлы
Если есть список файлов или изображений пронумерованные в определённом порядке, можно легко скачать их все, используя следующий синтаксис:
wget https://site.com/images/.jpg
Скачать сайт
Wget позволяет скачивать не только одиночные файлы, но и целые сайты, чтобы вы могли их потом просматривать в офлайне. Скачивается html версия сайта со всеми стилями и картинками:
# Самый простой способ (одностраничный сайт) wget --mirror https://site.com # более объёмный сайт с уровнем рекурсии в 10 wget -mrkcb -l 10 -P ~/Download https://site.com
Изучаем команду wget на 12 примерах
Все мы иногда качаем файлы из интернета. Если для этого использовать программы с графическим интерфейсом, то всё оказывается предельно просто. Однако, при работе в командной строке Linux дело несколько усложняется. Особенно — для тех, кто не знаком с подходящими инструментами. Один из таких инструментов — чрезвычайно мощная утилита wget, которая подходит для выполнения всех видов загрузок. Предлагаем вашему вниманию двенадцать примеров, разобрав которые, можно освоить основные возможности wget.
1. Загрузка одного файла
Если всё, что нужно — это загрузка одного файла, нам подойдёт следующая конструкция:
$ wget https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
После ввода такой команды начнётся скачивание Nagios Core. В ходе этого процесса можно будет видеть данные о загрузке, например — сведения о том, какой объём данных уже загружен, текущую скорость, и то, сколько времени осталось до конца загрузки.
2. Загрузка файла и сохранение его с новым именем
Если мы хотим сохранить загруженный файл под именем, отличающимся от его исходного имени, нам пригодится команда wget с параметром -O :
$ wget -O nagios_latest https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
При таком подходе загруженный файл будет сохранён под именем nagios_latest .
3. Ограничение скорости загрузки файлов
При необходимости скорость загрузки файлов с помощью wget можно ограничить. В результате эта операция не будет занимать весь доступный канал передачи данных и не повлияет на другие процессы, связанные с сетью. Сделать это можно, используя параметр —limit-rate и указав ограничение скорости, выраженное в байтах (в виде обычного числа), килобайтах (добавив после числа K ) или мегабайтах ( M ) в секунду:
$ wget ––limit-rate=500K https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
Здесь задано ограничение скорости загрузки, равное 500 Кб/с.
4. Завершение прерванной загрузки
Если в ходе загрузки файлов эта операция была прервана, можно возобновить загрузку с помощью параметра -c команды wget :
$ wget –c https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
Если этот параметр не использовать, то загрузка недокачанного файла начнётся сначала.
5. Фоновая загрузка файла
Если вы загружаете файл огромного размера и хотите выполнять эту операцию в фоне, сделать это можно, используя параметр -b :
$ wget –b https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
6. Загрузка нескольких файлов
Если имеется список URL файлов, которые надо загрузить, но вам не хочется вручную запускать загрузки этих файлов, можно использовать параметр -I . Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:
В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить wget , передав этой утилите только что созданный файл со списком загрузок:
Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.
7. Увеличение общего числа попыток загрузки файла
Для того, чтобы настроить число повторных попыток загрузки файла, можно использовать параметр —tries :
wget ––tries=100 https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
8. Загрузка файлов с FTP-сервера
Команда загрузки файла с анонимного FTP-сервера с помощью wget выглядит так:
Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:
$ wget –-ftp-user=dan ––ftp-password=********* FTP-URL
9. Создание локальной копии веб-сайта
Если нужно загрузить содержимое целого веб-сайта, сделать это можно, воспользовавшись параметром —mirror :
$ wget --mirror -p --convert-links -P /home/dan xyz.com
Обратите внимание на дополнительные параметры командной строки:
- -p : производится загрузка всех файлов, необходимых для корректного отображения HTML-страниц.
- —convert-links : ссылки в документах будут преобразованы для целей локального просмотра сайта.
- -P /home/dan : материалы будут сохранены в папку /home/dan .
10. Загрузка с сайта только файлов определённого типа
Для того, чтобы загрузить с сайта только файлы определённого типа, можно воспользоваться параметрами -r -A :
11. Пропуск файлов определённого типа
Если вы хотите скопировать целый веб-сайт, но при этом вам не нужны файлы определённого типа, отключить их загрузку можно с помощью параметра —reject :
$ wget --reject=png Website_url
12. Загрузка с использованием собственного .log-файла
Для того, чтобы загрузить файл и использовать при этом собственный .log -файл, воспользуйтесь параметром -o и укажите имя файла журнала:
$ wget -o wgetfile.log https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
Итоги
Wget — довольно простая в использовании, но весьма полезная утилита Linux. И, на самом деле то, о чём мы рассказали — лишь малая часть того, что она умеет. Надеемся, этот обзор поможет тем, кто не был знаком с wget, оценить эту программу, и, возможно, включить её в свой повседневный арсенал инструментов командной строки.
Уважаемые читатели! Пользуетесь ли вы инструментами командной строки Linux для загрузки файлов? Если да — просим о них рассказать.