Riorganizzazione struttura repository: separazione servizi e script
This commit is contained in:
47
scripts/pi1-master/watchdog_pi2.sh
Executable file
47
scripts/pi1-master/watchdog_pi2.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ================================================
|
||||
# SENTINELLA DI BACKUP (Gira su Pi-1 Master)
|
||||
# Controlla solo che il Pi-2 sia vivo.
|
||||
# ================================================
|
||||
|
||||
# --- CONFIGURAZIONE ---
|
||||
# 👇👇 INSERISCI I TUOI DATI VERI QUI 👇👇
|
||||
BOT_TOKEN="8155587974:AAF9OekvBpixtk8ZH6KoIc0L8edbhdXt7A4"
|
||||
CHAT_ID="64463169"
|
||||
# 👆👆 FINE MODIFICHE 👆👆
|
||||
|
||||
# Il bersaglio da controllare (Pi-2 Backup)
|
||||
TARGET_IP="192.168.128.81"
|
||||
TARGET_NAME="🍓 Pi-2 (Backup & Monitor)"
|
||||
|
||||
# File di stato specifico per questo controllo
|
||||
STATE_FILE="/tmp/pi2_watchdog.state"
|
||||
|
||||
# Funzione per inviare messaggi Telegram con timeout breve
|
||||
send_telegram() {
|
||||
MSG="$1"
|
||||
curl -s --max-time 5 -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" -d chat_id="$CHAT_ID" -d text="$MSG" -d parse_mode="Markdown" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# Inizializza stato se non esiste
|
||||
if [ ! -f "$STATE_FILE" ]; then echo "UP" > "$STATE_FILE"; fi
|
||||
LAST_STATE=$(cat "$STATE_FILE")
|
||||
|
||||
# --- IL PING ---
|
||||
# 3 tentativi, 2 secondi di timeout l'uno.
|
||||
# Basta che uno risponda per considerare il bersaglio UP.
|
||||
if ping -c 3 -W 2 "$TARGET_IP" > /dev/null 2>&1; then
|
||||
# === È ONLINE ===
|
||||
if [ "$LAST_STATE" == "DOWN" ]; then
|
||||
send_telegram "✅ **RISOLTO: $TARGET_NAME è tornato ONLINE!**%0AIl monitoraggio di rete è di nuovo attivo."
|
||||
echo "UP" > "$STATE_FILE"
|
||||
fi
|
||||
else
|
||||
# === È OFFLINE ===
|
||||
if [ "$LAST_STATE" == "UP" ]; then
|
||||
# Usiamo un'icona diversa per distinguerlo subito
|
||||
send_telegram "🛡️ **ALLARME SICUREZZA: $TARGET_NAME è OFFLINE!**%0A%0AAttenzione: Il sistema di monitoraggio principale (Super Watchdog) non sta funzionando."
|
||||
echo "DOWN" > "$STATE_FILE"
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user