From 2ccfe99963aa58493e0f0ee7b8f117fe5d90d1c2 Mon Sep 17 00:00:00 2001 From: Michel Date: Wed, 7 May 2025 16:01:04 +0200 Subject: [PATCH] =?UTF-8?q?"Cache=20param=C3=A8tres=20de=20connexion"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Monitor.py | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/Monitor.py b/Monitor.py index c27022d..5eae0ab 100644 --- a/Monitor.py +++ b/Monitor.py @@ -4,9 +4,16 @@ from datetime import datetime, timedelta import time import smtplib from email.mime.text import MIMEText -import pandas as pd from dotenv import load_dotenv import os +from pathlib import Path + +if os.name != 'nt': + log_dir = Path('/home/debian/Gestion_sondes/Logs') +else: + log_dir = Path.cwd() / 'Logs' + +log_dir.mkdir(parents=True, exist_ok=True) load_dotenv() @@ -18,11 +25,6 @@ config = { "database": os.getenv("DB_NAME") } -# Charger les destinataires depuis .env -# Charger les destinataires depuis .env - -destinataires = os.getenv("DESTINATAIRES_MAIL", "").split(',') - # --- Suivi des alertes actives pour rappels --- alertes_actives = {} @@ -30,18 +32,14 @@ alertes_actives = {} def envoyer_mail(sujet, message, destinataires_list): msg = MIMEText(message) msg['Subject'] = sujet - msg['From'] = 'alertes_saclay@domo91.fr' + msg['From'] = os.getenv("EMAIL_FROM") msg['To'] = ', '.join(destinataires_list) - try: - with smtplib.SMTP_SSL('smtp.mail.ovh.net', 465) as server: - server.login('alertes_saclay@domo91.fr', 'Kdpke674y23Feq^H') + try: + with smtplib.SMTP_SSL(os.getenv("SMTP_HOST"), int(os.getenv("SMTP_PORT"))) as server: + server.login(os.getenv("EMAIL_FROM"), os.getenv("EMAIL_PASSWORD")) server.sendmail(msg['From'], destinataires_list, msg.as_string()) print(f"📧 Mail envoyé à {destinataires_list}", flush=True) - 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) @@ -107,7 +105,8 @@ 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 : {maintenant.strftime('%Y-%m-%d %H:%M:%S')}" ) - envoyer_mail(sujet, message, destinataires) + destinataires_list = os.getenv("EMAIL_DESTINATAIRES").split(",") + envoyer_mail(sujet, message, destinataires_list) # Suivi pour rappels alertes_actives[nom_sonde] = maintenant @@ -121,7 +120,8 @@ def surveiller(): f"La sonde '{nom_sonde}' du site '{lieu}' est TOUJOURS en dépassement de seuil (>{seuil}°C).\n" f"Heure : {maintenant.strftime('%Y-%m-%d %H:%M:%S')}" ) - envoyer_mail(sujet, message, destinataires) + destinataires_list = os.getenv("EMAIL_DESTINATAIRES").split(",") + envoyer_mail(sujet, message, destinataires_list) alertes_actives[nom_sonde] = maintenant # Vérifier retour à la normale (Acquittement) @@ -147,9 +147,15 @@ def surveiller(): conn.close() if log_entries: + import pandas as pd df_logs = pd.DataFrame(log_entries) - df_logs.to_csv("/var/log/monitor.csv", sep=";", index=False) - df_logs.to_csv("/home/debian/Gestion_sondes/Logs/monitor.csv", sep=";", index=False) + + # Sauvegarde principale + df_logs.to_csv(log_dir / "monitor.csv", sep=";", index=False) + + # Sauvegarde secondaire (Linux uniquement) + if os.name != 'nt': + df_logs.to_csv("/var/log/monitor.csv", sep=";", index=False) except Exception as e: print(f"Erreur : {e}", flush=True)