Uptime-проверка HTTP через bash + cron
Опубликовано Обновлено
Нужно убедиться, что сайт возвращает 2xx каждую минуту, и получить алерт в Slack/Telegram при падении.
- 8 строк
- MIT лицензия — берите как есть
- HTTP monitor → то же без кода
Рецепт
#!/usr/bin/env bash
# /etc/cron.d/uptime-check
# * * * * * root /opt/uptime.sh https://example.com
URL="${1:?URL required}"
CODE=$(curl -o /dev/null -s -w "%{http_code}" -m 10 "$URL")
[ "$CODE" -ge 200 ] && [ "$CODE" -lt 400 ] || \
curl -X POST "$SLACK_WEBHOOK" --data "{\"text\":\"$URL → $CODE\"}"
То же самое в Enterno.io
Alternatively, Enterno следит за HTTP ответом и response-time из нескольких регионов (с тарифа Pro) без Bash и вебхуков — добавьте URL в мониторы.
Похожие рецепты
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.
Нужно ловить момент, когда реплика начала отставать от мастера больше чем на 10 секунд.
Ваш cron стал молча не запускаться. Нужен алерт, если скрипт пропустил окно выполнения.