Linux Labs

Bash: обработка текста и скрипты / Ступень 7 из 9 · шаг 7 из 8

Напиши healthcheck по договору

средняя ~25 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

Новую версию приложения выкладка пускает под трафик не сразу: сначала спрашивает скрипт ~/bash-lab/healthcheck.sh, готов ли адрес. Выкладка смотрит на код завершения, дежурный читает строку вывода. Скрипта пока нет — есть заготовка со строкой shebang.

Для проб на машине работает тестовое приложение http://127.0.0.1:8181:

Путь Ответ
/ready 200
/unready 503
/empty 204
/redirect 302 на /ready
/slow 200, но через 10 секунд

На порту 8182 никто не слушает.

Задача

Допиши ~/bash-lab/healthcheck.sh по договору с выкладкой:

  1. Выкладка запускает скрипт по пути: ~/bash-lab/healthcheck.sh URL.
  2. Сервер ответил 200 — скрипт печатает в stdout строку OK и выходит с кодом 0.
  3. Сервер ответил иначе (503, 204, 302, 404) — FAIL и код 1. За перенаправлением скрипт не идёт.
  4. Сервер не принимает соединение — FAIL и код 1.
  5. Ответа нет 2 секунды — FAIL и код 1; скрипт заканчивается сам не позже чем через 3 секунды.
  6. Без адреса или с двумя аргументами — stdout пуст, в stderr строка Usage: healthcheck.sh URL, код 2.

Когда сервер ответил — с любым кодом, — stderr остаётся пустым: строку там выкладка считает сбоем самой проверки.

Проверка запускает твой скрипт от student на этих адресах и на своих — с другими путями и ответами.

Интернета на машине нет, всё нужное уже установлено.

Видна только тебе. Сохраняется при вводе.

Все заметки

Цели лабы

0 из 6
  • ~/bash-lab/healthcheck.sh запускается по пути как команда — ещё не проверялась
  • Ответ 200 — в stdout OK, код 0, stderr пуст — ещё не проверялась
  • Любой другой ответ сервера — FAIL, код 1, stderr пуст — ещё не проверялась
  • Сервер не принимает соединение — FAIL, код 1 — ещё не проверялась
  • Ответа нет 2 секунды — FAIL, код 1, скрипт заканчивается сам за 3 секунды — ещё не проверялась
  • Без адреса или с двумя аргументами — Usage в stderr, stdout пуст, код 2 — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…