- Установка Wget в Linux
- 1. Загрузка файла с помощью Wget
- 2. Загрузка файла с другим именем с помощью Wget
- 3. Wget Загрузка нескольких файлов по протоколу HTTP и FTP
- 4. Wget Загрузка Нескольких Файлов Из одного Файла
- 5. Возобновление загрузки через Wget
- 6. Как с помощью wget скачать весь сайт
- 7. Wget Загрузка файлов в фоновом режиме
- 8. Установка Ограничения Скорости Загрузки Файлов Wget
- 9. Wget Загрузка защищенных паролем файлов через FTP и HTTP
- 10. Wget Игнорирует проверку SSL-сертификата
- 11. Версия Wget и справка
- Заключение
В этом руководстве мы рассмотрим утилиту wget, которая скачивает файлы из интернета (WWW), используя протоколы HTTP, HTTPS, FTP и FTPS.
Wget — это утилита командной строки и сетевой загрузчик файлов, которая поставляется со многими функциями, облегчающими загрузку файлов, в том числе:
- Загрузка больших файлов или скачка полного веб-сайта или FTP-сайта.
- Скачивание нескольких файлов одновременно.
- Установка ограничения пропускной способности и скорости для загрузок.
- Wget скачивает файлы через прокси-серверы.
- Может возобновить прерванные загрузки.
- Рекурсивно зеркальные каталоги.
- Работает в большинстве UNIX-подобных операционных систем, а также в Windows.
- Автоматическая / фоновая работа.
- Поддержка постоянных HTTP — соединений.
- И поддержка SSL/TLS для зашифрованных загрузок с использованием библиотеки OpenSSL или GnuTLS.
- Поддержка загрузок IPv4 и IPv6.
Посмотрите основные команды Linux
Основным синтаксисом Wget является:
$ wget [option] [URL]
Первое что требуется сделать это проверить установлена ли утилита wget сделать это можно командой.
[Для RHEL/CentOS/Fedora и Rocky Linux/AlmaLinux]
$ rpm -q wget
[Для Debian, Ubuntu и Mint]
$ dpkg -l | grep wget
Установка Wget в Linux
Если Wget не установлен, вы легко можете установить его с помощью диспетчера пакетов вашей системы Linux, как показано ниже.
$ sudo apt install wget -y
[для Debian, Ubuntu и Mint]
$ sudo yum install wget -y
[для RHEL/CentOS/Fedora и Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/wget
[для Gentoo Linux]
$ sudo pacman -Sy wget
[для Arch Linux]
$ sudo zypper install wget
[для OpenSUSE]
Опция y, используемая здесь, предназначена для согласия запросов подтверждения перед установкой любого пакета.
1. Загрузка файла с помощью Wget
Команда загрузит один файл и сохранит его в текущем каталоге. Она также показывает ход загрузки, размер, дату и время загрузки.
# wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
—2021-12-10 04:15:16— http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)… 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’
wget2-2.0.0.tar.gz 100%[==========>] 3.40M 2.31MB/s in 1.5s
2021-12-10 04:15:18 (2.31 MB/s) — ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]
2. Загрузка файла с другим именем с помощью Wget
Используя опцию -O
(в верхнем регистре), wget загружает файлы с указанным именем. Ниже показано как мы изменили имя файла wget2-2.0.0
на имя файла wget.zip.
# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
—2021-12-10 04:20:19— http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)… 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’wget.zip 100%[===================>] 436.49K 510KB/s in 0.9s
2021-12-10 04:20:21 (510 KB/s) — ‘wget.zip’ saved [446966/446966]
3. Wget Загрузка нескольких файлов по протоколу HTTP и FTP
В этом примере можно увидеть как загрузить одновременно несколько файлов по протоколу HTTP и FTP с помощью команды wget.
$ wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig
—2021-12-10 06:45:17— http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)… 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’wget2-2.0.0.tar.gz 100%[==========>] 4.40M 4.31MB/s in 1.1s
2021-12-10 06:46:10 (2.31 MB/s) — ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]
4. Wget Загрузка Нескольких Файлов Из одного Файла
Чтобы загрузить несколько файлов одновременно, используйте опцию -i
с расположением файла, содержащего список URL-адресов, которые необходимо загрузить. Каждый URL-адрес необходимо добавить в отдельную строку, как показано ниже.
Например файл ‘download-linux.txt‘ файл содержит список URL-адресов, которые необходимо загрузить.
# cat download-linux.txt
https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso
# wget -i download-linux.txt
—2021-12-10 04:52:40— https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)… 91.189.88.248, 91.189.88.247, 91.189.91.124, …
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’ubuntu-20.04.3-desktop-amd64 4%[=> ] 137.71M 11.2MB/s eta 3m 30s
…
Если ваш список URL-адресов имеет определенный шаблон нумерации, вы можете добавить фигурные скобки, чтобы выбрать все URL-адреса, соответствующие этому шаблону. Например, если вы хотите загрузить серию ядер Linux, начиная с версии 5.1.1 до 5.1.15, вы можете сделать следующее.
$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz
—2021-12-10 05:46:59— https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)… 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443… connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response… 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’linux-5.1.1.tar.gz 100%[===========>] 156.51M 2.59MB/s in 61s
2021-12-10 05:48:01 (2.57 MB/s) — ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]
—2021-12-10 05:48:01— https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response… 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’linux-5.1.2.tar.gz 19%[===========] 30.57M 2.58MB/s eta 50s
5. Возобновление загрузки через Wget
В случае загрузки большого файла иногда может произойти сбой загрузки. В этом случае мы можем возобновить загрузку того же файла с того места, где он был прерван с помощью опции -c
.
Но если вы начнете загружать файлы без указания опции -c
, wget добавит расширение .1
в конце файла, что будет считаться новой загрузкой. Поэтому рекомендуется добавлять опцию -c
при загрузке больших файлов.
# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
—2021-12-10 05:27:59— https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)… 91.189.88.247, 91.189.91.123, 91.189.91.124, …
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443… connected.
HTTP request sent, awaiting response… 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’ubuntu-20.04.3-desktop-amd64.iso 5%[++++++> ] 167.93M 11.1MB/s
^C
[root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
—2021-12-10 05:28:03— https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)… 91.189.88.248, 91.189.91.124, 91.189.91.123, …
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443… connected.
HTTP request sent, awaiting response… 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’ubuntu-20.04.3-desktop-amd64.iso 10%[+++++++=====> ] 296.32M 17.2MB/s eta 2m 49s ^
6. Как с помощью wget скачать весь сайт
Чтобы загрузить, отразить или скопировать весь веб-сайт для просмотра в автономном режиме, вы можете использовать следующую команду, которая создаст локальную копию веб-сайта вместе со всеми ресурсами (JavaScript, CSS, изображения).
$ wget —recursive —page-requisites —adjust-extension —span-hosts —convert-links —restrict-file-names=windows —domains yoursite.com —no-parent yoursite.com
Объяснение приведенной выше команды.
wget \
--recursive
|# Загрузка всего сайта.
--page-requisites
|# Получить все ресурсы/элементы (CSS/JS/изображения).
--adjust-extension
| # Сохранение файлов с .html в конце.
--span-hosts
| # Также включают необходимые ресурсы из других мест.
--convert-links
|# Обновить ссылки, чтобы они все еще работали в статической версии.
--restrict-file-names=windows
|# Измените имена файлов, чтобы они также работали в Windows.
--domains yoursite.com
| # Не переходите по ссылкам за пределами этого домена.
--no-parent
| # Не переходите по ссылкам за пределами каталога, в который вы переходите.
yoursite.com/whatever/path
|# URL-адрес для загрузки.
7. Wget Загрузка файлов в фоновом режиме
С помощью опции -b
вы можете загружать файлы в фоновом режиме сразу после начала загрузки, а лог загрузки записывается в файл wget.log.
$ wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Continuing in background, pid 8999.
Output will be written to ‘wget.log’.
8. Установка Ограничения Скорости Загрузки Файлов Wget
С опцией --limit-rate=100k
можно установить ограничение скорости загрузки файла в 100 кб, логи будут создаваться в файле wget.log, как показано ниже.
$ wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Continuing in background, pid 9108.
Output will be written to ‘wget-log’.
Просмотрите файл wget.log и проверьте скорость загрузки wget.
$ tail -f wget-log
9. Wget Загрузка защищенных паролем файлов через FTP и HTTP
Чтобы загрузить файл с защищенного паролем FTP-сервера, вы можете использовать параметры
и --ftp-user=username
, как показано ниже.--ftp-password=password
$ wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz
Чтобы загрузить файл с защищенного паролем HTTP-сервера, вы можете использовать параметры --http-user=username
и --http-password=password
, как показано ниже.
$ wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz
10. Wget Игнорирует проверку SSL-сертификата
Чтобы игнорировать проверку SSL-сертификата при загрузке файлов по протоколу HTTPS, вы можете использовать эту опцию --no-check-certificate
$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
—2021-12-10 06:21:21— https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)… 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443… connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response… 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
…
11. Версия Wget и справка
С помощью опций --version
или --help
вы можете просматривать версию и справку по мере необходимости.
$ wget --version
$ wget --help
Заключение
В этой статье мы рассмотрели команды wget Linux с опциями для ежедневных административных задач. Спасибо за то что дочитали до конца. Оставьте свои отзывы и замечания в разделе комментариев, а так же подписывайтесь на наш Дзен канал.