>_ IzzyLab

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

Напиши healthcheck

средне

Напиши исполняемый скрипт /usr/local/bin/healthcheck, который принимает URL аргументом, выходит с кодом 0, если URL отвечает HTTP 200, и 1 иначе. Затем повесь cron-задачу (от любого пользователя), запускающую его против http://localhost:5000/health каждую минуту с дозаписью вывода в /var/log/healthcheck.log.

Что потренируешь:
  • curl http_code
  • код выхода
  • cron
  • crontab
  • дозапись >>

Разбор темы

Задача из двух частей — скрипт-проверка и cron под него. Скрипт сообщает результат кодом выхода (0/1), по которому автоматика понимает, жив ли сервис; статус ответа удобно добыть через curl, у которого есть опция печати только кода ответа (-w '%{http_code}') и опция сброса тела в /dev/null, а URL приходит как $1. Периодический запуск задаёт cron: запись в crontab из пяти полей-расписания (все звёздочки = каждую минуту) плюс команда, дозаписывающая вывод в лог оператором >> (двойным, чтобы не затирать старое).

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

  1. скрипт healthcheck исполняемый
  2. healthcheck возвращает 0 для живого URL
  3. healthcheck возвращает 1 для мёртвого URL
  4. cron запускает healthcheck каждую минуту

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