NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
RU

Команды Linux и навыки работы с оболочкой

Curl: Веб-клиент командной строки, запускающий Интернет

Curl — это карманный HTTP-клиент любого набора операционных инструментов: диагностический, удобный для конвейера и честный в отношении того, что возвращается. Поверхность его флага выглядит огромной и по большей части не используется: около дюжины флагов охватывают повседневное оперативное использование, и знание их — это разница между запланированными проверками работоспособности и удачными. Правило, которое экономит больше всего страниц, тривиально: каждый раз устанавливайте --max-time, потому что терпение Curl бесконечно, а ваше — нет.

Главное

  1. Прежде чем загружать, посмотрите: curl -sSI https://host возвращает метод, заголовки и статус без тела; добавьте -v, если рукопожатия TLS, прокси-серверы или заголовки хостов ведут себя странно.
  2. Дисциплина таймаута не подлежит обсуждению: --connect-timeout 5 уничтожает мертвые соединения, --max-time 15 уничтожает медленные; проверка работоспособности без того и другого может пережить сбой, который она должна была обнаружить.
  3. Коды выхода — это контракт в скриптах: 7 — отказ в соединении, 28 — тайм-аут, 22 — ошибка HTTP, обнаруженная --fail; читайте код, а не только выходные данные, иначе ваш мониторинг ничего не узнает.
  4. Соедините видимость с принудительной реализацией: -w '%{http_code} %{time_total}\n' сообщает о том, что произошло, а --fail-with-body отображает тело ошибки; без одного из них неудача выглядит точно так же, как успех.
  5. Проверьте, что на самом деле нажимают пользователи: --resolve example.com:443:10.1.2.3 проверяет именованный сервер без DNS-игр, а -H «Хост: vhost.example.com» охватывает сторону vhost того же запроса.
  6. Передачи получают преднамеренные флаги: -o называет выходные данные, -L следует за просмотренными вами перенаправлениями, --retry 3 --retry-delay 2 смягчает нестабильные восходящие потоки, а -F обрабатывает многочастные загрузки, о которых никогда не заботились.
  7. Заголовки и сокеты содержат мир, не связанный с браузером: -H 'Authorization: Bearer...' для API и --unix-socket /run/app/app.sock для проверки локальных сервисов, которые вообще никогда не затрагивают TCP.
  8. Знайте две классические ловушки: переменные среды прокси, перехватывающие запрос, который -v предоставляет за секунды, и перенаправления, которые незаметно превращают POST в GET, если вы этого не хотели.

Заметка из практики

Проверка работоспособности, которая висела пятнадцать минут, выполнялась без --max-time внутри цикла cron, и она пережила сбой, который должна была обнаружить. В принципе, тайм-ауты теперь идут перед URL-адресом.

Частые вопросы

Почему Curl вышел из 0, когда сайт вернул 500?

успех Curl означает, что транспорт сработал; Ошибки уровня HTTP невидимы без --fail (выход 22) или чтения %{http_code} из -w. Скрипты мониторинга настаивают на одном из двух.

curl или wget для скриптов?

Curl для API, заголовков, тел POST и точного управления; wget для зеркалирования и рекурсии. Для одноразового GET работает любой из них, а конвейер, смешивающий оба, обычно является признаком того, что никто не решил, кому принадлежит задание.

Оправдан ли когда-либо пропуск проверки TLS?

Иногда за одну интерактивную диагностику по самоподписанному лабораторному сертификату; во всем, написанном по сценарию или управляемом cron, нет. -k отключает единственную проверку, которая не позволяет посреднику завладеть вашим переводом.

Как узнать, где на самом деле зависает медленный запрос?

Переменные времени: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}\n', запускаемый несколько раз, отделяет нестабильность DNS от проблем при рукопожатии и зависаний серверной части.

Как мы берём на себя команды linux и навыки работы с оболочкой

Мы разбирались с этим сотни раз: Команды и сценарии сценариев, которые решают, управляет ли администратор сервером или борется с ним: поиск, преобразование, передача и контроль текста и процессов с помощью инструментов, которые есть в каждой базовой установке. С услугой Безопасность серверов Linux и Администрирование серверов вы получаете полный цикл: мы оцениваем, внедряем, следим круглосуточно и подключаемся в течение 30 минут, когда это действительно нужно.

Поговорить с инженером

Проблема с сервером? Взломанный сайт? Медленная страница?

Критические инциденты с ответом в течение 30 минут — круглосуточно, 7 дней в неделю.

Запросить экстренную поддержку support@kinetikatech.com