From 5b1ce58ef4d7fc2260208e942034297caef29eb4 Mon Sep 17 00:00:00 2001 From: Michel Date: Sun, 13 Apr 2025 14:48:52 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A5=20Suppression=20du=20fichier=20inu?= =?UTF-8?q?tile=20=20Alerte=5Fjournali=C3=A8re.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervisor_watchdog.py | 58 ++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/supervisor_watchdog.py b/supervisor_watchdog.py index 8dfdaaa..6a9e47a 100644 --- a/supervisor_watchdog.py +++ b/supervisor_watchdog.py @@ -1,53 +1,45 @@ import subprocess import smtplib from email.mime.text import MIMEText -from datetime import datetime -# --- Config mail --- -EMAIL_FROM = "alertes_saclay@domo91.fr" -EMAIL_PASSWORD = "Kdpke674y23Feq^H" -EMAIL_TO = ["services@domo91.fr"] -SMTP_SERVER = "smtp.mail.ovh.net" -SMTP_PORT = 465 +# 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}" -# --- Lister tous les processus --- -output = subprocess.getoutput("supervisorctl status") -lines = output.splitlines() - -# --- Analyse des statuts --- +# Liste tous les états +etat_services = [] anomalies = [] -rapport = [] -for line in lines: +for line in output.splitlines(): parts = line.split() if len(parts) >= 2: - nom = parts[0] - statut = parts[1] - rapport.append(f"{nom:25} ➤ {statut}") + nom, statut = parts[0], parts[1] + etat_services.append(f"{nom} ➤ {statut}") if statut != "RUNNING": anomalies.append(f"{nom} ➤ {statut}") -# --- Mail à envoyer --- -now = datetime.now().strftime("%Y-%m-%d %H:%M") - +# Prépare le message if anomalies: - sujet = f"⚠️ Alerte Supervisor - {now}" - corps = "🛑 Les services suivants ne sont pas en RUNNING :\n\n" + "\n".join(anomalies) + sujet = "⚠️ Alerte Supervisor" + intro = "🛑 Les services suivants ne sont pas en RUNNING :" else: - sujet = f"✅ Rapport quotidien Supervisor - {now}" - corps = "Tous les services supervisés sont en RUNNING.\n\n" + "\n".join(rapport) + sujet = "✅ Rapport quotidien Supervisor" + intro = "✅ Tous les services supervisés sont en RUNNING." -msg = MIMEText(corps) +contenu = f"{intro}\n\n" + "\n".join(etat_services) + +# Prépare et envoie le mail +msg = MIMEText(contenu) msg["Subject"] = sujet -msg["From"] = EMAIL_FROM -msg["To"] = ", ".join(EMAIL_TO) +msg["From"] = "alertes_saclay@domo91.fr" +msg["To"] = "services@domo91.fr" -# --- Envoi --- try: - with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as server: - server.login(EMAIL_FROM, EMAIL_PASSWORD) - server.sendmail(EMAIL_FROM, EMAIL_TO, msg.as_string()) - print(f"📧 Mail envoyé : {sujet}") + with smtplib.SMTP_SSL("smtp.mail.ovh.net", 465) as server: + server.login("alertes_saclay@domo91.fr", "Kdpke674y23Feq^H") + server.sendmail(msg["From"], [msg["To"]], msg.as_string()) + print("📧 Mail envoyé.") except Exception as e: print(f"Erreur envoi mail : {e}") -