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

Эта задача — шаг 12 курса «curl и HTTP-API»

Проба URL с кодом в логе

средне~10 мин

Напиши скрипт /usr/local/bin/probe, который принимает URL первым аргументом. Если сервер ответил кодом 200, скрипт ничего не пишет; иначе дописывает в /var/log/probe.log строку FAIL <код> <url>, например FAIL 404 http://127.0.0.1:18090/missing. Когда соединения нет вовсе, кодом считается то, что вернул curl (000). Локальный сайт для проверки уже работает на http://127.0.0.1:18090/.

Скрипт удобно написать во вкладке «Редактор»: создай там файл /usr/local/bin/probe, а запускай и проверяй его в терминале.

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

Разбор темы

Пробу доступности строят на том, что curl умеет отдать только HTTP-статус: тело уводится в /dev/null ключом -o, а код печатается через формат -w '%{http_code}'. Коды бывают разные: 404 и 500 — это ответ сервера, а если порт закрыт, ответа нет вовсе, и curl подставляет 000. Записывать в лог сам код полезно: по 000 сразу видно, что сервис лежит, по 5xx — что он жив, но падает. Строку дописывают через >>, чтобы не стереть предыдущие записи.

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

  1. скрипт probe исполняемый
  2. закрытый порт записан как FAIL 000
  3. ответ 404 записан с кодом
  4. на ответ 200 скрипт молчит

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