import subprocess import smtplib from email.mime.text import MIMEText # 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 etat_services = [] anomalies = [] for line in output.splitlines(): parts = line.split() if len(parts) >= 2: nom, statut = parts[0], parts[1] etat_services.append(f"{nom} ➤ {statut}") if statut != "RUNNING": anomalies.append(f"{nom} ➤ {statut}") # 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." 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" msg["To"] = "services@domo91.fr" try: 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}")