Команда Curl в Unix/Linux

Команда Curl в Unix/Linux

Curl утилита для скачивания и загрузки файлов. В данной теме «Команда Curl в Unix/Linux» я расскажу как можно ее использовать на готовых примерах.

Команды Curl для загрузки файлов

1. Скачать и сохранить файл. 

Чтобы просто скачать файл с помощью Curl использование следующий синтаксис что ниже. Опция «-О» используется для сохранения файла на локальной системе с таким же именем что и на удаленной системе.

# curl -O http://linux-notes.org/test_file.zip

2. Скачать и сохранить файл с другим именем. 

Если вы хотите сохранить файл с другим именем на локальной системе, используйте параметр «-o» с новым именем файла.

# curl -o http://linux-notes.org/test_file.zip

3. Скачать и сохранить несколько файлов одновременно. 

Curl также дает возможность загружать несколько файлов одновременно. Все файлы будут сохраняться с оригинальными именами.

# curl -O http://linux-notes.org/test_file1.zip -O http://linux-notes.org/test_file2.zip

4. Скачать и сохранить файл с авторизированного сервера. 

В данном случае файлы будут скачиваться с сервера с аутентификацией HTTP или FTP. Вы можете передать учетные данные для входа, используя параметр «-u».

# curl -u your_auth_user:your_auth_PW -O http://linux-notes.org/test_file.zip
# curl -u your_auth_ftpuser:your_auth_ftpPW -O http://linux-notes.org/test_file.zip

5. Скачать и сохранить файл используя прокси сервер

Если файл-сервер доступен только через прокси-сервер или вы хотите использовать прокси-сервер для загрузки файлов, использование опцию «-x» с последующим адрес прокси-сервера и портом для загрузки файла через прокси-сервер.

$ curl -x this_your_proxy_server:port -O http://linux-notes.org/test_file.zip

Команды Curl для получения заголовков

Например, можно получить заголовки от сервера следующим образом:

# curl -I http://linux-notes.org/index.php

Для получения статуса от сервера используйте:

$ curl -Is http://linux-notes.org/ | head -1

или

$ curl -Is http://linux-notes.org/ | head -1 |cut -d" " -f2

А так же:

$ curl -sL -w "%{http_code}" linux-notes.org:80 -o /dev/null

или

$ curl -Is http://linux-notes.org/ | head -1 |awk '{ print $2;}'

Так же, можно проверить https УРЛ:

$ curl --insecure --silent --show-error --connect-timeout 1 -I https://linux-notes.org 

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 18 Mar 2017 22:14:17 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: http://linux-notes.org/
Cache-Control: max-age=86400, public, must-revalidate, proxy-revalidate
Strict-Transport-Security: max-age=63072000; includeSubdomains; preload
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Public-Key-Pins: pin-sha256="IFcSE6waV/oqKTxdUwTtx1oUgbXCQ+oWGL/osCF3fnQ="; pin-sha256="47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="; max-age=2592000; includeSubDomains
Alternative-Protocol: 443:npn-spdy/3.1
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://assets.zendesk.com; font-src 'self' https://themes.googleusercontent.com https://fonts.gstatic.com http://fonts.googleapis.com; frame-src https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'
Content-Security-Policy-Report-Only: default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report

Как-то так.

Можно по URL, узнать какой веб-сервер используется:

$ curl -IL linux-notes.org 2>/dev/null | grep Server

Иногда, полезно задействовать ограничение с переадресацией, например — ограничим до 10 переадресаций:

$ curl --location --max-redirs 10 http://linux-notes.org/.well-known/acme-challenge/index.php

ИЛИ:

$ curl --head --silent --location --max-redirs 10 http://linux-notes.org/.well-known/acme-challenge | grep ^HTTP

Выполнить bash скрипт из URL

Пример один:

$ bash < <(curl -s http://linux-notes.org/myscript.sh)

Идем дальше, следующий пример:

$ curl -s http://linux-notes.org/myscript.sh | bash -s --

Или, если есть ниобходимось задать входные данные:

$ curl -s http://linux-notes.org/myscript.sh | bash -s arg1 arg2

Вот еще один интересный пример:

$ source <(curl -s http://linux-notes.org.com/myscript.sh)

Самый простой вариант:

$ curl -s -L http://linux-notes.org | bash

Как-то так.

Опции для Curl

Для подробной информации, используйте:

$ curl -h

С помощью данной утилиты можно не только скачивать файлы, я попозже ( со временем) дополню данную статью. А на этом тема «Команда Curl в Unix/Linux» завершена.

One thought on “Команда Curl в Unix/Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *