- Команда Curl в Linux
- Что такое команда Curl?
- Установка Curl
- Основной синтаксис команды Curl
- Загрузка веб-страницы при помощи команды Curl
- Сохранение полученных данных в файл
- Отправка данных на сервер
- Настройка заголовков HTTP
- Следование за переадресацией
- Отправка POST-запросов с помощью команды Curl
- Загрузка файлов с помощью PUT
- Аутентификация с помощью Basic Auth
- Использование SSL/TLS с командой curl
- Использование прокси-серверов
- Опции (параметры) команды Curl
- Развертывание и подготовка сервера на Astra Linux
- Подключение сетевого репозитория
- Установка компонентов Docker
- Установка инструмента curl
- Установка утилиты docker-compose
- Отключение сетевого репозитория
Команда Curl в Linux
Добро пожаловать в мир Curl, универсального инструмента командной строки, который позволяет с легкостью передавать данные на серверы и обратно. Будь вы разработчик, системный администратор или просто любопытный пользователь. Команда Curl — незаменимый инструмент в вашем арсенале. С помощью Curl вы можете выполнять широкий спектр задач, от загрузки файлов до тестирования API и многого другого. В этой статье мы рассмотрим все тонкости Curl включая его наиболее полезные функций. И как вы можете использовать его для быстрого и эффективного выполнения задач. Будь вы профессионалом или новичком в командной строке, давайте погрузимся в мир Curl и посмотрим, что он может предложить!
Что такое команда Curl?
Curl — это инструмент командной строки для передачи данных на серверы и обратно по различным протоколам. Это универсальный инструмент, который можно использовать для отправки и получения данных через Интернет. Он широко используется в Linux и других подобных операционных системах.
Curl поддерживает широкий спектр протоколов, включая HTTP, HTTPS, FTP, SMTP, POP3, IMAP и многие другие. Он предназначен для работы с URL адресами и может использоваться для выполнения различных операций с ними, включая отправку запросов GET и POST, установку заголовков, загрузку и скачивание файлов.
Установка Curl
Curl обычно предустановлен в большинстве дистрибутивов Linux. Но если это не так, вы можете установить его с помощью менеджера пакетов вашего дистрибутива. Например, для установки Curl в дистрибутивах на базе Debian требуется выполнить следующую команду.
А для дистрибутивов на базе Red Hat, таких как CentOS требуется выполнить эту команду.
Мы писали статью «Curl команда не найдена» и в ней описывали как установить Curl в различные дистрибутивы ссылка на статью.
После установки вы можете начать использовать Curl для отправки и получения данных через Интернет.
Основной синтаксис команды Curl
Основной синтаксис команды curl следующий.
options — это различные параметры командной строки, которые вы можете использовать для изменения поведения команды curl. А URL — это URL сервера, к которому вы хотите подключиться. Если вы не укажете никаких опций, curl просто получит содержимое URL и отобразит его в командной строке.
Загрузка веб-страницы при помощи команды Curl
Чтобы получить веб-страницу с помощью команды curl, просто укажите URL страницы в качестве аргумента. Например, чтобы получить главную страницу Setewik, вы можете использовать следующую команду.
Данная команда позволит получить HTML содержимое главной страницы setiwik.ru и отобразит эти данные в вашем терминале.
Сохранение полученных данных в файл
Если вам необходимо сохранить полученные данные команды curl в файл. То можно использовать опцию -o или —output , за которой следует имя выходного файла. Например чтобы сохранить домашнюю страницу setiwik в файл с именем setiwik.html, вы можете использовать следующую команду.
Ланная команда позволит сохранить HTML содержимое домашней страницы Setiwik в файл с именем setiwik.html. Кстати данный файл сохраняется по умолчанию в домашний каталог.
Отправка данных на сервер
Curl также можно использовать и для отправки данных на сервер. С помощью различных методов HTTP, таких как POST, PUT и DELETE. Чтобы отправить данные методом POST, вы можете использовать опцию -d или —data , за которой следуют данные, которые вы хотите отправить. Например, чтобы отправить данные username=admin&password=admin12345 на сервер с помощью метода POST, вы можете использовать следующую команду.
curl -d «username=admin&password=admin12345» https://setiwik.ru/login
Данная команда отправит данные на сервер по адресу URL https://setiwik.ru/login, используя метод POST.
Настройка заголовков HTTP
Вы можете установить различные HTTP заголовки с помощью команды curl. Это позволит изменить поведение запроса. Чтобы установить HTTP заголовок, вы можете использовать опцию -H или —header , за которой следует имя и значение заголовка. Например, чтобы установить заголовок User-Agent на Mozilla/5.0 в запросе, вы можете использовать следующую команду.
curl -H «User-Agent: Mozilla/5.0» https://setiwik.ru
Эта команда скажет серверу что вы используете браузер с движком Mozilla/5.0.
Следование за переадресацией
Если сервер возвращает ответ с переадресацией (код 3xx), то curl по умолчанию не будет следовать на переадресованный адрес. Чтобы включить автоматическое следование переадресации, вы можете использовать опцию -L или —location . Например чтобы следить за перенаправлениями при получении веб-страницы, вы можете использовать следующую команду:
Отправка POST-запросов с помощью команды Curl
Curl можно использовать для отправки POST запросов на удаленный сервер. Вот пример команды для отправки POST запроса на удаленный сервер.
curl -X POST -d «name=Meilana&age=27» https://setiwik.ru
Эта команда Curl -X POST, указывает, что мы используем метод HTTP POST. -d «name=Meilana&age=27» указывает данные, которые мы хотим отправить в POST запросе. https://setiwik.ru — это URL сервера, на который мы отправляем POST-запрос.
Мы также можем использовать опцию -H для установки заголовков в POST запросе. Например, чтобы установить заголовок Content-Type на application/json, мы можем использовать следующую команду.
Загрузка файлов с помощью PUT
Команду Curl также можно использовать для загрузки файлов с помощью HTTP PUT запросов. Это полезно для передачи файлов на сервер, например, для загрузки изображения или документа.
Чтобы загрузить файл с помощью curl, используйте опцию -T , за которой следует путь к файлу.
curl -X PUT https://setiwik.ru/upload -T ~/Documents/file.pdf
В этом примере мы загружаем файл file.pdf, расположенный в каталоге ~/Documents/, на URL https://setiwik.ru/upload с помощью метода PUT.
Аутентификация с помощью Basic Auth
Команда Curl поддерживает HTTP Basic Authentication, которая является простой схемой аутентификации. Она использует имя пользователя и пароль. Учетные данные Basic Auth отправляются в HTTP заголовках с каждым запросом.
Для аутентификации с помощью Basic Auth используйте параметр -u , за которым следует имя пользователя и пароль, разделенные двоеточием.
curl -u Admin:PassAdmin https://setiwik.ru/protected
В этом примере мы аутентифицируемся с помощью имени пользователя Admin и пароля PassAdmin для доступа к URL https://setiwik.ru/protected.
Использование SSL/TLS с командой curl
Curl также можно использовать с зашифрованными соединениями SSL/TLS. По умолчанию curl проверяет сертификат сервера, используя доверенные центры сертификации системы. Однако можно отключить проверку сертификатов с помощью опции -k . Мы не рекомендуем это делать.
Чтобы использовать SSL/TLS, просто используйте схему URL https:// вместо http://:
Использование прокси-серверов
Команда Curl может использоваться с прокси-серверами. Укажите параметр —proxy , за которым следует URL прокси-сервера.
curl —proxy http://proxy.example.com http://setiwik.ru
В этом примере мы используем прокси-сервер по адресу http://proxy.example.com для доступа к URL http://setiwik.ru.
Опции (параметры) команды Curl
Здесь приведена подробная таблица опций команды Curl с их описанием.
OPTION | DESCRIPTION |
---|---|
-A, –user-agent | Установка пользовательской строки агента пользователя |
-b, –cookie | Отправка файлов cookie из строки/файла |
-c, –cookie-jar | Запись файлов cookie в файл после выполнения операции |
-d, –data | Данные HTTP POST |
-e, –referer | URL адрес реферера |
-F, –form | HTTP многокомпонентные данные POST |
-H, –header | Дополнительный заголовок для включения в запрос |
-i, –include | Включить заголовки протоколов в вывод |
-I, –head | Получение только заголовков |
-k, –insecure | Разрешить небезопасные соединения с сервером при использовании SSL |
-L, –location | Следить за переадресацией |
-o, –output | Запись вывода в файл вместо stdout |
-O, –remote-name | Запись вывода в файл с тем же именем, что и удаленный файл |
-s, –silent | Бесшумный режим, ничего не выводит |
-T, –upload-file | HTTP PUT данные из файла |
-u, –user | Установите имя пользователя и пароль для аутентификации сервера |
-v, –verbose | Режим Verbose, выводит больше информации |
-w, –write-out | Пользовательский формат вывода |
-x, –proxy <[protocol://]host[:port]> | Использовать указанный прокси-сервер |
–cert | Файл сертификата клиента и пароль |
–compressed | Включить сжатие |
–connect-timeout | Максимальное время ожидания соединения |
–digest | Используйте аутентификацию HTTP Digest |
–insecure | Разрешить небезопасные соединения с сервером при использовании SSL |
–ipv4 | Использовать только IPv4 |
–ipv6 | Использовать только IPv6 |
–keepalive-time | Время сколько поддерживать связи |
–max-filesize | Максимальный размер загружаемых файлов |
–max-redirs | Максимальное количество перенаправлений для следования |
–netrc | Используйте учетные данные из файла .netrc |
–no-keepalive | Отключить функцию keepalive |
–ntlm | Используйте аутентификацию NTLM |
–retry | Количество повторных попыток при неудаче |
–ssl | Использовать SSL |
–tlsv1.0, –tlsv1.1, –tlsv1.2 | Использовать указанную версию TLS |
–user-agent | Установка пользовательской строки агента пользователя |
Важно отметить, что эти опции можно использовать по отдельности или в комбинации, чтобы настроить команду Curl под конкретные задачи. Освоив эти опции, пользователи смогут выполнять широкий спектр HTTP/HTTPS запросов и автоматизировать различные вебзадачи с помощью командной строки.
Развертывание и подготовка сервера на Astra Linux
Продукт «Форсайт. Мобильная платформа» работает в среде контейнеризации Docker. Настройте и разверните инфраструктуру подсистемы Docker на сервере мобильной платформы и на Relay-сервере, если он используется.
Для развертывания сервера:
- Подготовьте среду виртуализации при использовании виртуального сервера. Программный продукт «Форсайт. Мобильная платформа» поддерживает Oracle VirtualBox, VMware Workstation и Microsoft Hyper-V.
- Убедитесь, что операционная система удовлетворяет системным требованиям.
- Подключите cетевой репозиторий.
- Установите компоненты Docker.
- Установите инструмент curl для передачи данных с сервера.
- Установите утилиту docker-compose для одновременного управления несколькими контейнерами, входящими в состав приложения.
- Отключите сетевой репозиторий при необходимости.
После выполнения действий сервер будет подготовлен для установки сервера мобильной платформы.
Подключение сетевого репозитория
Для подключения сетевого репозитория:
% sudo apt install apt-transport-https ca-certificates
% sudo vi /etc/apt/sources.list
deb https://download.astralinux.ru/astra/stable/orel/repository orel contrib main non-free
После выполнения действия будет подключен сетевой репозиторий для установки компонентов Docker.
Установка компонентов Docker
Для установки компонентов Docker:
- Войдите в консоль сервера локально или удаленно посредством SSH клиента.
- Удалите Docker предыдущих версий:
% sudo apt-get remove docker docker-engine docker.io
Возможно, указанные компоненты в системе отсутствуют.
% sudo apt install docker.io
- Добавьте текущую учётную запись в группу пользователей Docker для запуска контейнеров без запроса повышенных привилегий (root):
% sudo usermod -aG docker $USER
- Выйдите и заново зайдите в операционную систему, завершив все пользовательские сеансы в консоли, используйте SSH или перезагрузите сервер.
- Проверьте корректность установки Docker:
- при наличии доступа в сеть Интернет выполните команду:
В результате будет загружен тестовый образ Docker, запущен тестовый контейнер и получен ответ, содержащий статус операции;
В результате будет получен ответ, содержащий версии клиента и сервера компонентов Docker:
% docker container rm $(docker container ls –aq) && docker image rm $(docker image ls –aq)
После выполнения действий на сервер будут установлены компоненты Docker.
Установка инструмента curl
Для установки инструмента curl выполните команду:
После выполнения действий будет установлен инструмент curl для передачи данных с сервера мобильной платформы.
Установка утилиты docker-compose
Для установки утилиты docker-compose выполните команды:
% sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
% sudo chmod +x /usr/local/bin/docker-compose
% docker-compose —version
После выполнения действий будет установлена утилита docker-compose и выведен заголовок её версии.
Отключение сетевого репозитория
Для отключения сетевого репозитория:
% sudo vi /etc/apt/sources.list
#deb https://download.astralinux.ru/astra/stable/orel/repository orel contrib main non-free
После выполнения действий сетевой репозиторий будет отключён.