New We are sorting MAX channels into categories and territories. Read the news
Loading image…

πŸ” ЦикличСский ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ статуса сСрвиса с Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ



Иногда Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ сСрвиса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€ΠΈ сбоС β€” сразу Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π’ΠΎΡ‚ простой скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 30 сСкунд ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ статус сСрвиса ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ ΠΏΡ€ΠΈ ошибкС:

#!/bin/bash

SERVICE="nginx"
LOGFILE="/var/log/${SERVICE}_monitor.log"
INTERVAL=30

while true; do
if ! systemctl is-active --quiet "$SERVICE"; then
echo "$(date '+%Y-%m-%d %H:%M:%S') ❌ $SERVICE is down" >> "$LOGFILE"
# ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-Π±ΠΎΡ‚Π° ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚Ρƒ)
else
echo "$(date '+%Y-%m-%d %H:%M:%S') βœ… $SERVICE is running" >> "$LOGFILE"
fi
sleep "$INTERVAL"
done

πŸ“Œ Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² screen ΠΈΠ»ΠΈ tmux сСссию ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° сСрвСрС - ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ вСсти Π»ΠΎΠ³ доступности Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ сСрвиса.

πŸ›‘οΈ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° nginx, mysql, sshd ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмных Π΄Π΅ΠΌΠΎΠ½ΠΎΠ².

πŸ‘‰ @bash_srv
Views: 200
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content β€” check the address before entering passwords or payment details.

Redirecting in 10 s

Go