Утилита wget в Linux
Это очень мощная утилита, способная работать по протоколам HTTP
, HTTPS
и FTP
. Кроме того поддерживается работа через прокси. Команда wget
, может выполнять загрузку файлов даже в фоновом режиме - без участия пользователя, в отличии от большинства веб браузеров.
Синтаксис
wget опции адрес_ссылки
Опции
-V, --version
вывести версию программы-h, --help
вывести справку-b, --background
работать в фоновом режиме-o, --out-file
указать лог файл-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/wget-1.5.3.tar.gz
Сохранить файл с другим именем
Опция -О
позволяет задать имя сохраняемому файлу, скачать файл с именем wget.zip
:
wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Скачать несколько файлов
Вы можете скачать несколько файлов одной командой даже по разным протоколам, просто указав их URL:
wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
Взять URL из файла
Вы можете сохранить несколько URL в файл, а затем загрузить их все, передав файл опции -i
. Например создадим файл tmp.txt
, со ссылками для загрузки wget
, а затем скачаем его:
wget -i /wget/tmp.txt
Продолжить загрузку
Утилита wget
рассчитана на работу в медленных и нестабильных сетях. Поэтому если вы загружали большой файл, во время загрузки было потеряно соединение, то вы можете скачать файл wget с помощью опции -c
:
wget -c http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Загрузка файлов в фоне
Опция -b
заставляет программу работать в фоновом режиме, весь вывод будет записан в лог файл, для настройки лог файла используются специальные ключи:
wget -b -o ~/wget.log http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Ограничение скорости загрузки
Команда позволяет не только продолжать загрузку файлов, но и ограничивать скорость загрузки. Для этого есть опция --limit-rate
. Например ограничим скорость до 100 килобит:
wget --limit-rate=100k ftp://ftp.iinet.net.au/debian/debian-cd/8.4.0/amd64/iso-dvd/debian-8.4.0-amd64-DVD-1.iso
Здесь доступны, как и в других подобных командах индексы для указания скорости - k - килобит
, m - мегабит
, g - гигабит
, и так далее.
Подключение по логину и паролю
Некоторые ресурсы требуют аутентификации, для загрузки их файлов. С помощью опций --http-user=username
, –http-password=password
и --ftp-user=username
, --ftp-password=password
вы можете задать имя пользователя и пароль для HTTP или FTP ресурсов.
wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
Загрузить и выполнить
Wget
позволяет сразу же выполнять скачанные скрипты. Если опции -O
не передать аргументов, то скачанный файл будет выведен в стандартный вывод, затем мы его можем перенаправить интерпретатору bash, как показано выше:
wget -O - http://сайт/скрипт.sh | bash
Сохранить файл в папке
По умолчанию wget
сохраняет файл в текущую папку, но это поведение очень легко изменить с помощью опции -P
:
wget -P ~/Downloads/ http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Передать информацию о браузере
Некоторые сайты фильтруют ботов, но мы можем передать фальшивую информацию о нашем браузере user-agent
и страницу с которой мы пришли http-referer
:
wget ‐‐refer=http://google.com ‐‐user-agent=”Mozilla/5.0 Firefox/4.0.1″ //losst.pro
Количество попыток загрузки
По умолчанию wget
пытается повторить загрузку 20 раз, перед тем как завершить работу с ошибкой. Количество раз можно изменить с помощью опции --tries
:
wget --tries=75 http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
Квота загрузки
Если вам доступно только ограниченное количество трафика, вы можете указать утилите, какое количество информации можно скачивать, например разрешим скачать файлов из списка только на десять мегабайт:
wget -Q10m -i download-list.txt
Здесь работают те же индексы для указания размера.
Скачать сайт
Wget
позволяет не только скачивать одиночные файлы, но и целые сайты, чтобы вы могли их потом просматривать в офлайне. Использование wget, чтобы скачать сайт в linux выглядит вот так:
wget --mirror -p --convert-links -P ./папка адрес_сайта