From 08a94ed41289c2ca81d8d437368e064abba84fd6 Mon Sep 17 00:00:00 2001 From: Michel Date: Tue, 22 Apr 2025 15:37:44 +0200 Subject: [PATCH] =?UTF-8?q?R=C3=A9v.11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Monitor.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/Monitor.py b/Monitor.py index 0187052..d387c91 100644 --- a/Monitor.py +++ b/Monitor.py @@ -1,13 +1,14 @@ -# Surveillance continue avec envoi d'alertes par email + log CSV + # Surveillance continue avec envoi d'alertes par email + log CSV import mysql.connector from datetime import datetime, timedelta import time import smtplib from email.mime.text import MIMEText import pandas as pd -import os from dotenv import load_dotenv +import os +# Charger les variables d'environnement load_dotenv() # --- Config MySQL --- @@ -18,27 +19,23 @@ config = { "database": os.getenv("DB_NAME") } - -# --- Fonction de sélection des destinataires selon le site --- -def get_destinataires(lieu): - return os.getenv(f"EMAIL_{lieu.upper()}", os.getenv("EMAIL_DEFAULT")).split(",") - +# --- Destinataires email --- +destinataires = ['services@domo91.fr'] # --- Fonction d'envoi de mail --- def envoyer_mail(sujet, message, destinataires): msg = MIMEText(message) msg['Subject'] = sujet - msg['From'] = os.getenv("EMAIL_FROM") + msg['From'] = 'alertes_saclay@domo91.fr' msg['To'] = ', '.join(destinataires) try: - with smtplib.SMTP_SSL(os.getenv("SMTP_HOST"), int(os.getenv("SMTP_PORT"))) as server: - server.login(os.getenv("SMTP_USER"), os.getenv("SMTP_PASSWORD")) + with smtplib.SMTP_SSL('smtp.mail.ovh.net', 465) as server: + server.login('alertes_saclay@domo91.fr', 'Kdpke674y23Feq^H') server.sendmail(msg['From'], destinataires, msg.as_string()) print(f"📧 Mail envoyé à {destinataires}", flush=True) except Exception as e: print(f"Erreur envoi mail : {e}", flush=True) - # --- Fonction de surveillance --- def surveiller(): log_entries = [] @@ -67,6 +64,7 @@ def surveiller(): """, (nom_sonde,)) relevés = cursor.fetchall() + # Log CSV : tous les relevés analysés for r in relevés: log_entries.append({ "Date": r['Date'], @@ -99,7 +97,7 @@ def surveiller(): f"La sonde '{nom_sonde}' du site '{lieu}' a dépassé le seuil de {seuil}°C " f"depuis plus de 30 minutes.\nHeure : {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}" ) - envoyer_mail(sujet, message, get_destinataires(lieu)) + envoyer_mail(sujet, message, destinataires) # Acquittement automatique cursor.execute(f""" @@ -122,7 +120,13 @@ def surveiller(): # Enregistrer le log if log_entries: df_logs = pd.DataFrame(log_entries) - df_logs.to_csv("/home/debian/travail/Logs/monitor.csv", sep=";", index=False) + df_logs.to_csv("/home/debian/travail/logs/monitor.csv", sep=";", index=False) except Exception as e: print(f"Erreur : {e}", flush=True) + +# --- Boucle principale --- +while True: + print(f"📡 Vérification à {datetime.now()}", flush=True) + surveiller() + time.sleep(300) # 5 minutes \ No newline at end of file