🔥 Règlage du fichier supervisor_watchdog.py
This commit is contained in:
@@ -1,17 +1,14 @@
|
||||
import subprocess
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from datetime import datetime
|
||||
|
||||
# Récupère tous les services via supervisorctl
|
||||
try:
|
||||
output = subprocess.getoutput("/usr/bin/supervisorctl status") # adapte le chemin si besoin
|
||||
except Exception as e:
|
||||
output = f"Erreur récupération supervisorctl: {e}"
|
||||
|
||||
# Liste tous les états
|
||||
heure_actuelle = datetime.now().strftime("%H:%M")
|
||||
etat_services = []
|
||||
anomalies = []
|
||||
|
||||
try:
|
||||
output = subprocess.check_output("/usr/bin/supervisorctl status", shell=True, text=True)
|
||||
for line in output.splitlines():
|
||||
parts = line.split()
|
||||
if len(parts) >= 2:
|
||||
@@ -19,18 +16,18 @@ for line in output.splitlines():
|
||||
etat_services.append(f"{nom} ➤ {statut}")
|
||||
if statut != "RUNNING":
|
||||
anomalies.append(f"{nom} ➤ {statut}")
|
||||
except Exception as e:
|
||||
etat_services.append("❌ Impossible d'exécuter supervisorctl")
|
||||
anomalies.append(f"Erreur : {e}")
|
||||
|
||||
# Prépare le message
|
||||
if anomalies:
|
||||
sujet = "⚠️ Alerte Supervisor"
|
||||
intro = "🛑 Les services suivants ne sont pas en RUNNING :"
|
||||
else:
|
||||
sujet = "✅ Rapport quotidien Supervisor"
|
||||
intro = "✅ Tous les services supervisés sont en RUNNING."
|
||||
# Déclenchement mail si anomalie ou à 07:00
|
||||
envoyer_mail = bool(anomalies) or heure_actuelle == "07:00"
|
||||
|
||||
if envoyer_mail:
|
||||
sujet = "⚠️ Alerte Supervisor" if anomalies else "✅ Rapport quotidien Supervisor"
|
||||
intro = "🛑 Les services suivants ne sont pas en RUNNING :" if anomalies else "✅ Tous les services supervisés sont en RUNNING."
|
||||
contenu = f"{intro}\n\n" + "\n".join(etat_services)
|
||||
|
||||
# Prépare et envoie le mail
|
||||
msg = MIMEText(contenu)
|
||||
msg["Subject"] = sujet
|
||||
msg["From"] = "alertes_saclay@domo91.fr"
|
||||
@@ -43,3 +40,5 @@ try:
|
||||
print("📧 Mail envoyé.")
|
||||
except Exception as e:
|
||||
print(f"Erreur envoi mail : {e}")
|
||||
else:
|
||||
print("🕖 Aucun mail envoyé (tout est OK et ce n’est pas l’heure du rapport).")
|
||||
|
||||
Reference in New Issue
Block a user