Mise à jour des scripts et docs de log

This commit is contained in:
2025-04-20 09:39:16 +02:00
parent e7cbed8977
commit 581a92d81e
13 changed files with 241 additions and 5 deletions

3
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
Non confirmé 897966.crdownload

8
.idea/Fichiers_perso.iml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.11 (Gestion sondes) (2)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,19 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N812" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="paho.mqtt.client.MQTTException" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

7
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.13 (Best_Western) (2)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (Gestion sondes) (2)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Fichiers_perso.iml" filepath="$PROJECT_DIR$/.idea/Fichiers_perso.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -1,19 +1,18 @@
# Insertion de données da l'app SG.
# Fichier démarré avec la commande dans le terminal >streamlit run Societe_Generale.py
import streamlit as st
import mysql.connector
from dotenv import load_dotenv
import os
from datetime import datetime
load_dotenv()
st.set_page_config(page_title="Insertion Mysql", layout="centered")
st.title("🗓️ Insertion dans une base MySQL")
# Charger les identifiants
DB_HOST = os.getenv("DB_HOST")
DB_USER = os.getenv("DB_USER")
DB_PASSWORD = os.getenv("DB_PASSWORD")
DB_HOST = ("54.36.188.119")
DB_USER = ("michel")
DB_PASSWORD = ("#SO2&1nf%mZ@jfh")
# Connexion sans DB initiale pour lister les bases
@st.cache_data

View File

@@ -0,0 +1,14 @@
🧠 Explication :
Tu te connectes en SSH avec paramiko
Le script vider_logs_recursive.py est exécuté à distance
Tu récupères le stdout et stderr pour voir ce qui sest passé
✅ En résumé :
Où ? Que faire ? paramiko requis ?
Ton PC Lancer Executer_ssh_vider_logs.py → SSH ✅ Oui
Ton VPS Avoir un script Python simple de vidage logs ❌ Non

View File

@@ -0,0 +1,24 @@
✅ Résumé :
Action sur le fichier Résultat dans log_viewer
-Le programme écrit une nouvelle ligne ✅ Saffiche immédiatement
-Le fichier est vidé (> fichier.log) 🟡 Rien de nouveau, mais pas derreur
-Le fichier est renommé ou déplacé 🔴 Plus de nouveaux logs affichés
-Le fichier est supprimé 🔴 Plus de suivi non plus
✅ Que se passe-t-il lorsquun programme écrit dans le fichier log surveillé ?
Prenons l'exemple :
🔍 Surveillance de : /var/log/deploy_monitor.err.log
Pendant que ce fichier est ouvert en lecture par ton script, aucun souci :
✅ Si un autre programme (par ex. deploy_monitor.py) écrit une nouvelle ligne dans ce fichier,
ton script l'affichera instantanément (comme tail -f)
🕵️‍♂️ Tu verras immédiatement apparaître :
2025-04-20 12:12:31 - ERROR - Problème de connexion MQTT
Ton script utilise un readline() dans une boucle avec seek(0, SEEK_END) au démarrage,
donc il suit les ajouts en direct sans recharger le fichier complet à chaque fois.
Pour lancer le programme : python3 /home/debian/travail/tools/log_viewer.py

View File

@@ -0,0 +1,56 @@
import os
import time
# 📁 Dossier contenant les fichiers de logs
DOSSIER_LOGS = "/var/log"
# 📌 Récupère tous les .log du dossier (récursivement si besoin)
import os
import time
# 📁 Répertoire de logs à analyser
DOSSIER_LOGS = "/var/log"
# 🔍 Demande un filtre à l'utilisateur
filtre = input("🔎 Entrer un mot-clé pour filtrer les fichiers logs (ex: 'meudon', 'streamlit') : ").lower()
# 📋 Recherche récursive des fichiers .log
fichiers_logs = []
for racine, _, fichiers in os.walk(DOSSIER_LOGS):
for fichier in fichiers:
if fichier.endswith(".log"):
chemin_complet = os.path.join(racine, fichier)
if filtre in fichier.lower() or filtre in chemin_complet.lower():
fichiers_logs.append(chemin_complet)
# 🛑 Aucun résultat ?
if not fichiers_logs:
print(f"Aucun fichier .log correspondant à '{filtre}' trouvé.")
exit(1)
# 📑 Affiche les résultats filtrés
print(f"\n📄 Logs trouvés correspondant à '{filtre}':\n")
for i, fichier in enumerate(fichiers_logs):
print(f"[{i}] {fichier}")
# ✅ Choix utilisateur
try:
choix = int(input("\nChoisir le numéro du log à surveiller : "))
log_file = fichiers_logs[choix]
except (ValueError, IndexError):
print("❌ Choix invalide.")
exit(1)
# 🔄 Affichage en temps réel (tail -f like)
print(f"\n🔍 Surveillance de : {log_file} (Ctrl+C pour quitter)\n")
with open(log_file, "r") as f:
f.seek(0, os.SEEK_END)
try:
while True:
ligne = f.readline()
if ligne:
print(ligne.strip())
else:
time.sleep(0.5)
except KeyboardInterrupt:
print("\n⏹️ Surveillance arrêtée.")

85
txt/requirements.txt Normal file
View File

@@ -0,0 +1,85 @@
# Pour le mettre à jour
# pip freeze > requirements.txt
#
altair==5.5.0
ansi==0.3.7
attrs==25.3.0
beautifulsoup4==4.13.3
blinker==1.9.0
cachetools==5.5.2
certifi==2025.1.31
cffi==1.17.1
charset-normalizer==3.4.1
click==8.1.8
colorama==0.4.6
colorlog==6.9.0
comtypes==1.4.10
contourpy==1.3.1
cryptography==44.0.2
cycler==0.12.1
DateTime==5.5
deepmerge==2.0b0
dulwich==0.22.8
err==3.2.0
errbot==6.2.0
et_xmlfile==2.0.0
Flask==3.1.0
fonttools==4.57.0
fpdf==1.7.2
gitdb==4.0.12
GitPython==3.1.44
idna==3.10
importlib==1.0.4
itsdangerous==2.2.0
Jinja2==3.1.6
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
kiwisolver==1.4.8
Markdown==3.7
MarkupSafe==3.0.1
matplotlib==3.10.1
mysql==0.0.3
mysql-connector==2.2.9
mysql-connector-python==9.2.0
mysqlclient==2.2.7
narwhals==1.33.0
numpy==2.2.4
openpyxl==3.1.5
packaging==24.2
paho-mqtt==2.1.0
pandas==2.2.3
pillow==11.1.0
protobuf==5.29.4
pyarrow==19.0.1
pycparser==2.22
pydeck==0.9.1
Pygments==2.16.1
pygments-markdown-lexer==0.1.0.dev39
pyOpenSSL==25.0.0
pyparsing==3.2.3
python-dateutil==2.9.0.post0
python-dotenv==1.1.0
pytz==2025.2
referencing==0.36.2
requests==2.32.3
rpds-py==0.24.0
schedule==1.2.2
setproctitle==1.3.5
six==1.17.0
smmap==5.0.2
soupsieve==2.6
streamlit==1.44.1
subprocess-alive==0.10
tenacity==9.1.2
timedelta==2020.12.3
toml==0.10.2
tornado==6.4.2
typing_extensions==4.12.2
tzdata==2025.2
urllib3==2.3.0
waitress==3.0.2
watchdog==6.0.0
WebOb==1.8.8
WebTest==3.0.4
Werkzeug==3.1.3
zope.interface==7.2