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
. Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:$ vi url.txt
В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить
wget
, передав этой утилите только что созданный файл со списком загрузок:$ wget –I url.txt
Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.
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-URL
Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:
$ 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
:$ wget -r -A.txt Website_url
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 для загрузки файлов? Если да — просим о них рассказать.
Комментарии (30)
Demon_i
15.01.2018 12:02Я только что прочитал man wget. Реквистирую статью как пользоваться блокнотом в винде.
andreymal
15.01.2018 12:31+2Ну блин, с первого же пункта сразу два косяка. Про & выше уже написали, а ещё такая команда создаст файл с довольно проблемным мусорным именем «nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia». Автор вообще не запускал то что написал что ли?
ploop
15.01.2018 12:58Если для этого использовать программы с графическим интерфейсом, то всё оказывается предельно просто
Да как бы сказать… браузерные качалки убоги сейчас, лишние дополнения ставить не хочется, искать специальное графическое ПО из-за редких случаев, когда это требуется тоже.
В итоге открыть терминал, набрать wget -c Ctrl+Chift+V и забыться с уверенностью, что он всё правильно сделает, гораздо проще.
Ну а по статье уже сказали: пересказ мана. Думал про какие-нибудь неочевидные фишки узнать, а тут… Хотя, если кто не знал вообще про эту утилиту, может на пользу пойдёт.vtvz_ru
15.01.2018 14:19Я тоже предпочитаю качать через консоль. GUI качалки либо слишком просты, либо чересчур загружены. Браузер часто недокачивает. А когда нужно скачать пачкой, намного проще упихать все ссылки в один файл и одной командой все получить.
saboteur_kiev
15.01.2018 13:49в 2018 году найти сайт на pure html, без бэкенда, практически нереально, поэтому mirror практически бесполезен.
vtvz_ru
15.01.2018 14:10GitHub Pages? Допустим, документацию по ReactJS выкачать, чтобы почитать на досуге, пока куда-то едешь (проезда, автобусы междугородние).
rorc
15.01.2018 15:20mirror — применяется достаточно часто для создания копии чужого сайта, для дальнейшего чтения. Второй вариант — выгрузка на статичный хостинг, тот же гитхаб сайта сделанного на движке не поддерживающем экспорт в статику. Третий вариант — извлечение ресурсов с сайта, когда нет времени на изучение что из документации потребуется и в каком формате оно находится на сайте. И т.п.
Статичные сайты тоже не редкость в определенных сферах деятельности. Например, демо и документация к open source (free) дополнениям и плагинам.csn
15.01.2018 18:39+1Такой подход и для своих древних проектов можно использовать. На прошлой неделе при помощи wget-а очень быстро и просто сделал статическую копию одного своего старенького php-ного сайта (последние обновления были в 2008).
При миграциях на новые сервера стало уже неинтересно каждый раз специально только для него устанавливать устаревшие версии php-fpm, работающие параллельно с php7.1- fpm. А переписывать «старичка» под php7 тоже смысла нет.
После перехода в статику также отпала необходимость и в поддержке его базы на mysql (mariadb), тоже маленький, но профит. По дисковым затратам статика стала занимать места больше на 20% чем динамика плюс база mysql. Зато и нагрузку лишнюю убрали, для nginx новый вариант — это семечки.
heleo
15.01.2018 18:29Если добавить использование wget через прокси то будет вполне себе годный мини ман по базовым вопросам
hobo-mts
15.01.2018 20:56Так юзайте /etc/wgetrc:
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = proxy.yoyodyne.com:18023/
#http_proxy = proxy.yoyodyne.com:18023/
#ftp_proxy = proxy.yoyodyne.com:18023/
https_proxy=…
http_proxy=…
ftp_proxy=…
proxy-user=…
proxy-password=…
074909
15.01.2018 22:46Упомянуть, что ли, мимоходом en.m.wikipedia.org/wiki/GnuWin32 и en.wikipedia.org/wiki/UnxUtils
23rd
16.01.2018 08:49Ага, и бинарники десятилетней давности.
Может кто знает аналог wget для Windows?evaganov
16.01.2018 11:17В PowerShell есть командлет Invoke-WebRequest с псевдонимом wget (так что можно не отвыкать от привычного :) ), правда функционал несколько ограничен. Но простые вещи, по типу скачки файлов вполне работают.
darkdaskin
16.01.2018 20:24$ vi url.txt
Если бы я входил в целевую аудиторию этой статьи, на этой строчке у меня бы всё и закончилось :)
LESHIY_ODESSA
17.01.2018 14:53Под Windows использую для скачивания свежих версий программ.
:: Windоws — ActiveX (Internet Explorer)
wget http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_ax.exe -O install_flash_player_IE.exe
:: Windоws — NPAPI (Firefox, Opera Presto до 12)
wget http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player.exe -O install_flash_player_Firefox.exe
:: Windоws — PPAPI (Chromium, Opera 30 и выше)
wget http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_ppapi.exe -O install_flash_player_Chromium.exe
kalininmr
кажется такой урл не будет нормально приниматся башем как параметр изза &
надо писать в кавычках
SLASH_CyberPunk
Нормально принимается, т.к. нет пробелаИ правда не проходит, странно…
kalininmr
так задуманно :)
& — управляющий символ для шелла.
фоновый запуск.
onix74
Именно! В кавычки адрес брать надо.
alek0585
то есть получается автор этой статьи не удосужился проверить примеры?
kalininmr
похоже на то :)