"Cache paramètres de connexion"

This commit is contained in:
2025-05-07 16:01:04 +02:00
parent 12a202c2b2
commit 2ccfe99963

View File

@@ -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)