wget

Contents
Введение
Простой пример
Докачивать файл
Указать директорию
Переименовать при скачивании
Пример GNUmakefile
Сохранить иерархию
Похожие статьи

Введение

wget это сокращение от английского

web get

Что по-русски звучит как

Достать что-то из интернета

Изучить man wget можно здесь

https://www.gnu.org/software/wget/ GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols. It is a non-interactive commandline tool, so it may easily be called from scripts, cron jobs, terminals without X-Windows support, etc. GNU Wget has many features to make retrieving large files or mirroring entire web or FTP sites easy, including: Can resume aborted downloads, using REST and RANGE Can use filename wild cards and recursively mirror directories NLS-based message files for many different languages Optionally converts absolute links in downloaded documents to relative, so that downloaded documents may link to each other locally Runs on most UNIX-like operating systems as well as Microsoft Windows Supports HTTP proxies Supports HTTP cookies Supports persistent HTTP connections Unattended / background operation Uses local file timestamps to determine whether documents need to be re-downloaded when mirroring GNU Wget is distributed under the GNU General Public License.

Скачать в текущую директорию

wget http://какой-то_url

Пример скачивания CentOS Linux с помощью wget.

Чтобы скачать что-нибудь полезное нужно найти где что-то полезное лежит

Образы с CentOS хранятся в специальных репозиториях.

Репозитории CentOS можно изучить на сайте centos.org

Список x86_64 репозиториев для CentOS 7 можно найти

здесь

Для CentOS 8

здесь

Я нахожусь в Хельсинки поэтому ближайший репозиторий CentOS это ftp.funet.fi

К вам может быть ближе какой-то другой репозиторий из списка

wget http://ftp.funet.fi/pub/mirrors/centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

--2021-11-03 12:36:59-- http://ftp.funet.fi/pub/mirrors/centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso Resolving ftp.funet.fi (ftp.funet.fi)... 193.166.3.2, 2001:708:10:8::2 Connecting to ftp.funet.fi (ftp.funet.fi)|193.166.3.2|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 4712300544 (4.4G) [application/x-iso9660-image] Saving to: ‘CentOS-7-x86_64-DVD-2009.iso’ CentOS-7-x86_64-DVD 100%[===================>] 4.39G 2.17MB/s in 23m 24s 2021-11-03 13:00:23 (3.20 MB/s) - ‘CentOS-7-x86_64-DVD-2009.iso’ saved [4712300544/4712300544]

В результате CentOS-7-x86_64-DVD-2009.iso скачан в текущую директорию

Докачивать файл

Если есть риск сетевых помех можно использовать флаг -c который позволяет продолжать прерванные скачивания

wget -с http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso

Этот флаг можно добавлять к другим - если не будет прерываний разницу вы не заметите.

Указать директорию

Если вы хотите сохранить образ в какую-то другую директорию - используйте опцию -P

В следующей команде я выбрал другой репозиторий из списка и другой образ - на этот раз NetInstall

wget -P ~/Downloads http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso

--2021-11-03 13:09:47-- http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso Resolving mirror.hosthink.net (mirror.hosthink.net)... 95.216.21.104 Connecting to mirror.hosthink.net (mirror.hosthink.net)|95.216.21.104|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 602931200 (575M) [application/octet-stream] Saving to: ‘mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso’

Образ CentOS-7-x86_64-NetInstall-2009.iso будет скачан в директорию ~/Downloads

‘-P prefix’ ‘--directory-prefix=prefix’ Set directory prefix to prefix. The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree. The default is ‘.’ (the current directory). gnu.org

Изучите также опцию -O

Переименовать при скачивании

Если название слишком длинное для вас - его можно сразу же изменить на что-то более удобное.

wget http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso -O ce7net.iso

В текущую директорию будет скачан CentOS-7-x86_64-NetInstall-2009.iso и сразу же переименован в ce7net.iso

Чтобы сохранить оба файла воспользуйтесь флагом -o

Флаг -O позволит также указать директорию для сохранения.

Например:

wget http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso -O ~/Downloads/ce7net.iso

Сохранит переименованный файл в ~/Downloads

GNUmakefile

Пример makefile для скачивания и переименовывания фйла 0_README.txt с сохранением в другую директорию

.PHONY: centos7-readme centos7-readme: # Download centos7_README.txt if [ ! -f ~/Downloads/linux_isos/centos7_README.txt ]; then \ wget -c http://centos.mirror.far.fi/7.9.2009/isos/x86_64/0_README.txt \ -O ~/Downloads/linux_isos/centos7_README.txt; \ else \ echo "centos7_README.txt already exists"; \ fi

Запустить таргет этого GNUmakefile можно командой

make centos7-readme

Подробнее про make читайте в статье

« Работа с GNUmakefile в Linux »

Более сложные примеры работы с wget в Makefile вы можете изучить в статье

« make + wget »

Сохранить иерархию репозитория

Если вы хотите сохранить всю иерархию директорий репозитория. Например, если вы планируете скачать несколько файлов - используйте опцию -x

wget -x http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso

--2021-11-03 13:09:47-- http://mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso Resolving mirror.hosthink.net (mirror.hosthink.net)... 95.216.21.104 Connecting to mirror.hosthink.net (mirror.hosthink.net)|95.216.21.104|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 602931200 (575M) [application/octet-stream] Saving to: ‘mirror.hosthink.net/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso’

В текущей директории будет создана иерархия директорий

mirror.hosthink.net/centos/7.9.2009/isos/x86_64/

И уже в неё будет скачан образ CentOS-7-x86_64-NetInstall-2009.iso

Ошибки

Warning: wildcards not supported in HTTP.

В url нельзя просто так вставить * и ожидать корректной работы, на стороне сервера скорее всего нет нормальной файловой системы и поиск не заработает.

О том как частично обойти эту проблему читайте в статье

« Wildcard: скачивание по неполному имени »

wget man можно изучить здесь

Related Articles
wget: скачивание файлов
wget + make
wget man
Linux
FAQ
make
Настройка сети
Firewall
SCP: обмен файлами;
SSH: удалённый доступ