Команда curl. Синтаксис. Примеры использования
Curl – удобная командная строка для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. наблюдения в середине 90-х годов, на заре развития Интернета, он разрабатывал бота, которая была за исследованиями с веб-страницами курсов валют и сообщала пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новых функций. Теперь curl используется для передачи любых данных и других полезных задач. Рассмотрим основные моменты работы с переносчиками.
Синтаксис и опции curl
Синтаксис следующей:
curl [ОПЦИИ] [АРГУМЕНТ]
В качестве аргумента задается, как правило, URL скачивания файла. Основные сведения о подписке ниже -# — отображать простой прогресс-бар во время загрузки; -0 — использовать протокол http 1.0; -1 — использование протокола шифрования tlsv1; -2 — использовать sslv2; -3 — использовать sslv3; -4 — использовать ipv4; -6 — использовать ipv6; -A — указать свой USER_AGENT; -b — сохранить Cookie в файл; -c — отправить Cookie на сервер из файла; -C — продолжить загрузку файла с разрывом места или местом размещения; -m — максимальное время ожидания ответа от сервера; -d — отправить данные методом POST; -D — сохранить заголовки, возвращенные сервером в файл; -e — возникло поле Referer-uri, несчастье с каким сайтом пришел пользователь; -E — использовать внешний сертификат SSL; -f — не выводить об ошибках сообщений; -F — отправить данные в форме видео; -G — если эта опция включена, то все данные возвращаются в опции -d возвращаются методом GET; -H — передать заголовки на сервер; -I — получать только заголовок HTTP, а все содержимое страницы игнорировать; -j — отменить и отправить cookie из файла; -J — удалить заголовок из запроса; -L — принимать и принимать перенаправления; -s — максимальное количество перенаправлений с помощью Location; -o — вывести содержимое страницы в файл; -O — содержимое файла с именем или файлом страницы на сервере; -p — использовать прокси; —proto — указать протокол, который нужно использовать; -R — последнее время чтения удаленного файла; -s — выводить минимум информации об ошибках; -S — выводить об ошибках; -T — загрузить файл на сервер; -v — подробный вывод; -y — минимальная скорость загрузки; -Y — максимальная скорость загрузки; -z — скачать файл, только если он был модифицирован позже среды времени; -V — вывести версию.
Основные варианты, которые мы рассмотрели в обычных примерах.
Просмотр версии curl
Опция -V или —version выводит не только версию curl, но и краткую информацию о протоколах и функциях:
curl --version
Скачивание файла
Если вам требуется скачать файл, запустите curl с опцией –O или –o . Первый из них сохранил файл в поисках рабочего каталога под тем же именем, что и в удаленном месте нахождения. Вторая возможность позволяет указать другое имя и/или место для скачивания. Cохранение файла под исходным именем (yourfile) в каталоге операций.
curl -O http://yourdomain.com/yourfile
Cохранение файла под именем newfile
в директории /tmp/examplе/
.
curl -o /tmp/examplе/newfile http://yourdomain.com/yourfile.tar.gz
newfile.tar.gz
в директории /tmp/examplе/
Возобновление прерванной загрузки
Если скачивание по какому-то случаю было прервано (например, пользователь нажал Ctrl+C), вы легко можете возобновить его с места остановки при помощи опции -C – :
curl -C - -O http://yourdomain.com/yourfile
Скачивание нескольких файлов
Следующая команда позволит вам скачать info.html
с http://yoursite.com
и about.html
с http://mysite.com
в один прием:
curl -O http://yoursite.com/info.html/info -O http://mysite.com/about.html/about
Если использовать curl вместе с командой xargs , можно скачать файлы в соответствии с запросом URL, заданном в файле (в соответствии с использованием listurls.txt
):
xargs -n 1 curl < listurls.txt
Использование прокси-сервера
Если вы подключились через прокси-сервер, необходимо указать его загрузку curl при помощи следующих опций (в случае использования имени сервера proxy.yourdomain.com
, порт 8080
, имя пользователя
, пароль qwerty1234
):
curl -x proxy.yourdomain.com:8080 -U пользователь:qwerty1234 -O http://yourdomain.com/yourfile
Если ваш прокси-сервер не требует аутентификации, следует использовать
-U user:qwerty1234
.
Запрос HTTP-заголовков
HTTP-заголовки позволяют удаленному веб-серверу отправить ответ на сам запрос дополнительной информации. Как был получен ответ: Для запроса HTTP-заголовков веб-сайта выполните команду с опцией -I:
curl -я https://itproffi.ru
Также эту информацию можно получить, воспользовавшись функциями для объединения.
cURL POST-запросы с параметрами
Следующая команда отправляет на https://yourdomain.com/info.php параметры firstName и lastName с соблюдаемыми значениями: $ curl --data "Имя=Иван&Фамилия=Иванов" https://yourdomain.com/info.php
Этим приемом можно пользоваться для имитации работы обычных веб- форм.
Скачивание файлов с FTP-сервера
Следующая команда скачивает в текущую директорию файл yourfile с удаленного FTP-сервера ftp://yourftpserver (имя пользователя, пароль qwerty1234):
curl -u пользователь:qwerty1234 -O ftp://вашftpсервер/вашфайл
Если FTP-сервер поддерживает анонимный вход, параметр –u с именем пользователя и паролем не нужны.
Загрузка файлов на FTP-сервер
Для загрузки последовательного файла mylocalfile.tar.gz открывается команда:
curl -u пользователь:qwerty1234 -T mylocalfile.tar.gz ftp://вашftpсервер
Указание агента пользователя
Агент пользователя – часть информации HTTP-запроса. Она показывает, какой любимый мужчина. Можно посмотреть, что имеющаяся версия curl преобразует по умолчанию и установить новое значение:
curl -I http://localhost --user-agent "Я новый веб-браузер"
Запись файлов cookie с веб-сайта
Хотите посмотреть, какие файлы cookie скачиваются на компьютер, когда вы заходите на ваш сайт? Опция —cookie-jar сохраняет их список в файле, который в дальнейшем можно просмотреть при помощи команды cat.
curl --cookie-jar cookies.txt https://itproffi.ru/
Отправка файлов cookie на сайт
Получение в обзоре файлов файлов cookies можно использовать в опросе к самому же самому сайту:
curl --cookie cookies.txt https://itproffi.ru
Изменение разрешения имени
Если вы хотите протестировать локальную версию своего веб-сайта, чем предварительно запросить, с помощью опции —resolve можно установить curl разрешение на выполнение имени вашего сайта на адресном серверном адресном протоколе, например:
curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/
Таким образом, при запросе на http://www.yourdomain.com curl будет запрашивать сайт с важным сайтом, а не использовать или DNS-файл /etc/hosts
.
Ограничение скорости скачивания
Чтобы не использовать всю пропускную способность канала, можно уменьшить скорость загрузки при помощи опции —limit -rate :
curl --limit-rate 100K http://yourdomain.com/yourfile -O