🛠 Mises à jour sécurisation et nettoyage de Monitor, domo91, scripts MQTT

This commit is contained in:
2025-04-23 09:17:12 +02:00
parent 1821ce44f8
commit 7ad495e28e
5 changed files with 65 additions and 39 deletions

View File

@@ -3,7 +3,10 @@ import mysql.connector
import sys
import os
import logging
from datetime import datetime
from dotenv import load_dotenv
# Charger les variables d'environnement
load_dotenv()
# 📁 Création du dossier de logs s'il n'existe pas
dossier_logs = "/var/log/Cuisine_Meudon"
@@ -28,10 +31,10 @@ logging.getLogger('').addHandler(console)
try:
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages")
mydb = mysql.connector.connect(
host="54.36.188.119",
user="michel",
password="#SO2&1nf%mZ@jfh",
database="Sondes"
host=os.getenv("DB_HOST"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=os.getenv("DB_NAME")
)
logging.info("Connexion MySQL réussie.")
except mysql.connector.Error as err:

View File

@@ -3,7 +3,10 @@ import mysql.connector
import sys
import os
import logging
from datetime import datetime
from dotenv import load_dotenv
# Charger les variables d'environnement
load_dotenv()
# 📁 Création du dossier de logs s'il n'existe pas
dossier_logs = "/var/log/Cuisine_Saclay"
@@ -28,10 +31,10 @@ logging.getLogger('').addHandler(console)
try:
sys.path.insert(0, "/myenv/lib/python3.11.2/site-packages")
mydb = mysql.connector.connect(
host="54.36.188.119",
user="michel",
password="#SO2&1nf%mZ@jfh",
database="Sondes"
host=os.getenv("DB_HOST"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=os.getenv("DB_NAME")
)
logging.info("Connexion MySQL réussie.")
except mysql.connector.Error as err:

View File

@@ -1,18 +0,0 @@
# Purge de la table Sondes.Alertes_Saclay.
import mysql.connector
config = {
"host": "54.36.188.119",
"user": "michel",
"password": "#SO2&1nf%mZ@jfh",
"database": "Sondes"
}
conn = mysql.connector.connect(**config)
cursor = conn.cursor()
cursor.execute("DELETE FROM Alertes_Saclay WHERE Debut_defaut < NOW() - INTERVAL 7 DAY")
conn.commit()
cursor.close()
conn.close()
print("✅ Alertes de plus de 7 jours supprimées.")

35
Purge_alertes.py Normal file
View File

@@ -0,0 +1,35 @@
# Purges des entrées de toutes les tables dans la base Sondes qui commencent
# par Alertes_*** et qui sont agées de plus de sept jours.
import mysql.connector
import os
from dotenv import load_dotenv
# Charger les variables d'environnement
load_dotenv()
config = {
"host": os.getenv("DB_HOST"),
"user": os.getenv("DB_USER"),
"password": os.getenv("DB_PASSWORD"),
"database": os.getenv("DB_NAME")
}
conn = mysql.connector.connect(**config)
cursor = conn.cursor()
# Récupérer toutes les tables d'alertes
cursor.execute("SHOW TABLES")
tables = [t[0] for t in cursor.fetchall()]
alertes_tables = [t for t in tables if t.startswith("Alertes_")]
# Appliquer la purge à chaque table
for table in alertes_tables:
query = f"DELETE FROM {table} WHERE Debut_defaut < NOW() - INTERVAL 7 DAY"
cursor.execute(query)
print(f"✅ Table {table} purgée.")
conn.commit()
cursor.close()
conn.close()
print("🎉 Purge terminée pour toutes les alertes anciennes.")

View File

@@ -1,4 +1,5 @@
# Application Gestion de sondes
# -*- coding: utf-8 -*-
import streamlit as st
import mysql.connector
import pandas as pd
@@ -9,6 +10,10 @@ from fpdf import FPDF
import os
import random
import datetime
from dotenv import load_dotenv
# Charger les variables d'environnement
load_dotenv()
st.set_page_config(page_title="Domo91 - Surveillance", layout="wide")
if "authenticated" not in st.session_state:
@@ -18,21 +23,19 @@ if "authenticated" not in st.session_state:
st.title("📡 Supervision Températures")
# --- Configuration base de données ---
db_config = {
"host": "54.36.188.119",
"user": "michel",
"password": "#SO2&1nf%mZ@jfh",
"database": "Sondes"
db_config ={
"host": os.getenv("DB_HOST"),
"user": os.getenv("DB_USER"),
"password": os.getenv("DB_PASSWORD"),
"database": os.getenv("DB_NAME")
}
# --- Fonction de génération PDF ---
def generer_pdf(site, date_str):
st.info(f"Génération du rapport PDF pour {site} à la date {date_str}")
try:
conn = mysql.connector.connect(**db_config)
cursor = conn.cursor(dictionary=True)
pdf_cursor = conn.cursor(dictionary=True)
cursor.execute(f"SELECT Sonde, Date, Temperature FROM `{site}` WHERE DATE(Date) = %s ORDER BY Sonde, Date",
(date_str,))
@@ -105,8 +108,8 @@ def generer_pdf(site, date_str):
mime="application/pdf"
)
except Exception as e:
st.error(f"Erreur lors de la génération du PDF : {e}")
except Exception as err1:
st.error(f"Erreur lors de la génération du PDF : {err1}")
# --- Initialisation des variables de session ---
@@ -401,7 +404,7 @@ if st.session_state["authenticated"]:
except Exception as e:
st.error(f"Erreur lors de la récupération des alertes : {e}")
except Exception as e:
except Exception as err:
st.error(f"Erreur MySQL : {e}")
if st.session_state["role"] == "superviseur":
with st.expander("+ Ajouter une nouvelle chambre froide", expanded=False):