10 Примеров команды Wget в Linux (Загрузка файлов Linux)

В этом руководстве мы рассмотрим утилиту wget, которая скачивает файлы из интернета (WWW), используя протоколы HTTPHTTPSFTP и 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

10 Примеров команды Wget в Linux (Загрузка файлов Linux)
10 Примеров команды Wget в Linux (Загрузка файлов Linux)

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 с опциями для ежедневных административных задач. Спасибо за то что дочитали до конца. Оставьте свои отзывы и замечания в разделе комментариев, а так же подписывайтесь на наш Дзен канал.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.