ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

В чем разница между wget и curl?

В чем разница между wget и curl?

Нам часто нужно загружать файлы с удаленных серверов на наш локальный компьютер. На графическом рабочем столе мы можем использовать браузер с графическим интерфейсом и нажать кнопку загрузки. Однако на терминале нам нужно использовать инструменты, разработанные для терминала. При загрузке файлов с терминала часто появляются четыре инструмента: curl , axel , wget и aria2. Хотя axel и aria2 могут быть не очень хорошо известны, большинство пользователей терминалов знают curl и wget.

В этой статье мы рассмотрим curl и wget, с чего начать, и, что наиболее важно, различия между ними.

 

Что такое cURL?

cURL — это бесплатная утилита командной строки с открытым исходным кодом, которая позволяет пользователям передавать данные с одного удаленного компьютера на другой с минимальным вмешательством пользователя или без него. CURL широко используется в таких устройствах, как маршрутизаторы, принтеры, телефоны, планшеты, медиаплееры и т. д.

Он поддерживает загрузку и выгрузку с использованием таких протоколов, как HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER и многие, многие другие.

cURL также предоставляет прокси, возобновление передачи, аутентификацию пользователей, сертификаты SSL и многое другое.

 

Что такое wget?

GNU Wget, обычно называемый wget, — это бесплатная утилита командной строки для передачи файлов с использованием HTTP/HTTPS, FTP и FTPS. Он предоставляет такие функции, как рекурсивные загрузки, управление пропускной способностью, возобновление прерванных передач, фоновые загрузки, рекурсивные зеркальные файлы и каталоги и многое другое.

 

Как установить cURL и Wget?

cURL и wget — популярные инструменты, легко доступные в основных дистрибутивах Linux; если у вас не установлен какой-либо инструмент, используйте следующие команды для установки:

 

Debian/Ubuntu:

# установить cURL

sudo apt-get install curl

# установить wget

sudo apt-get install wget

 

Arch/Manjaro:

# установить cURL

sudo pacman -S curl

# установить wget

sudo pacman -S wget

 

REHL/CentOS/Fedora:

# установить cURL

sudo yum install curl 
sudo dnf install curl

# установить wget

sudo yum install wget 
sudo dnf install wget

 

Как использовать cURL и Wget (примеры использования)?

Чтобы убедиться, что вы понимаете сходства и различия между cURL и wget, полезно взглянуть на несколько примеров:

 

Протоколы HTTP/HTTPS:

И cURL, и wget поддерживают протоколы HTTP и HTTPS. Следовательно, если мы загрузим такой веб-сайт, как andreyex.ru:

curl https://andreyex.ru -o andreyex.html

curl https://andreyex.ru -o andreyex.html

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 256k 0 256k 0 0 166k 0 --:--:-- 0:00:01 --:--:-- 166k

По умолчанию cURL будет печатать содержимое веб-ресурса в терминале. Мы используем флаг -o, чтобы перенаправить вывод в файл.

К wget применимо следующее:

https://andreyex.ru
--2021-07-23 16:05:09--  https://andreyex.ru/
Resolving andreyex.ru (andreyex.ru)... 213.159.210.167, 172.17.0.1
Connecting to andreyex.ru (andreyex.ru)|213.159.210.167|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html'

index.html [ <=> ] 135.22K --.-KB/s in 0.001s

2021-07-23 16:05:09 (161 MB/s) - 'index.html' saved [138463]

 

Wget, с другой стороны, сохраняет запрошенный ресурс в файл.

Приятно отметить, что оба инструмента загружают ресурс. Подробности ls двух файлов показывают оба размера файлов.

$ Ls -l index.html andreyex.html

-rw-RW-r-- 1 andreyex andreyex 262396 июля 20 12:23 index.html

-rw-RW-r-- 1 andreyex andreyex 262396 июля 23 12:43 andreyex.html

Протокол FTP:

И cURL, и wget поддерживают загрузку по протоколам FTP. Однако cURL поддерживает загрузку на ftp.

Используйте команду ниже для загрузки файлов с FTP-сервера с помощью wget:

wget --user=debian --password=’debian’ ftp://192.168.0.112/backup.zst

wget --user=debian --password='debian' ftp://192.168.0.112/backup.zst

--2021-06-20 05:29:06-- ftp://192.168.0.112/backup.zst

=> ‘backup.zst’

Connecting to 192.168.0.112:21... connected.

Logging in as debian ... Logged in!

==> SYST ... done. ==> PWD ... done.

==> TYPE I ... done. ==> CWD not needed.

==> SIZE backup.zst ... done.

==> PASV ... done. ==> RETR backup.zst ... done.

backup.zst

[ <=> ] 0 --.-KB/s in 0s

2021-06-20 05:29:06 (0.00 B/s) - ‘backup.zst’ saved [0]

Using curl, add the -u flag as:

curl -u debian:debian ‘ftp://192.168.0.112/backup.zst’ -o backup.zst

curl -u debian:debian 'ftp://192.168.0.112/backup.zst' -o backup.zst

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0

To upload a file to ftp with curl, we use the -T option as:

curl -u debian:debian -T “backup1.zst” ftp://192.168.0.112/ftp/

Убедитесь, что каталог существует и у пользователя есть права на запись в него.

 

Сходства между wget и cURL

А теперь глазурь на торте:

 

Различия между wget и cURL

Вот некоторые различия между curl и wget:

 

Вывод

В этом руководстве основное внимание уделяется сходству и различию между cURL. Хотя может показаться, что cURL — лучший выбор, есть случаи, когда wget — лучший выбор.

Мой вам совет — выберите то, что вам подходит.

Exit mobile version