wget
Введение | |
Простой пример | |
Докачивать файл | |
Указать директорию | |
Переименовать при скачивании | |
Пример 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 можно изучить здесь
wget: скачивание файлов | |
wget + make | |
wget man | |
Linux | |
FAQ | |
make | |
Настройка сети | |
Firewall | |
SCP: обмен файлами; | |
SSH: удалённый доступ |