>_ IzzyLab

Практическое задание

Healthcheck с логом падений

сложно

Напиши /usr/local/bin/healthlog, принимающий URL: если URL отвечает 200 — молчит, иначе дописывает DOWN <url> в /var/log/health.log. Проверь на недоступном http://localhost:59999/.

Что потренируешь:
  • healthcheck
  • curl
  • http-коды
  • bash-скрипты
  • аргументы скрипта

Разбор темы

Healthcheck — это одна проверка: получить HTTP-статус по URL и сравнить с ожидаемым (200 = живой). curl умеет отдать только код ответа, если увести тело в /dev/null и запросить нужный плейсхолдер через формат вывода -w. Готча: когда порт вообще не слушает, это не HTTP-ошибка, а отказ соединения — реального кода нет, и curl подставит 000, что всё равно не равно 200. При несовпадении событие дописывается (>>) в лог, где URL берётся из позиционного аргумента $1.

Что проверяется

  1. Скрипт исполняемый
  2. Падение записано в лог

Как это выглядит