Auto_Save_Projet Surveillance_Projet_Qualite_Air
Version: 1.1.0 (2024-01-12) Auteur: kahina et franck - Groupe 2 Contact: bigmoletos@yopmail.com
Script de surveillance et sauvegarde automatique.
Ce module: - Surveille les modifications du projet en temps réel - Gère les sauvegardes planifiées avec cron - Génère des résumés de modifications hiérarchiques - Crée des archives ZIP datées et vérifiées - Exclut les fichiers spécifiés dans files_ignore.txt de la surveillance
Architecture:
Surveillance: - Détection des modifications avec watchdog - Classification hiérarchique des changements - Filtrage intelligent des événements via files_ignore.txt - Horodatage précis des modifications
Planification: - Cron toutes les 3 heures (7h, 10h, 13h, 16h, 19h) - Plage horaire optimisée (7h-20h) - Gestion des week-ends et jours fériés - Cooldown entre les sauvegardes
Sauvegarde: - Déclenchement du script de sauvegarde - Compression ZIP avec vérification (inclut TOUS les fichiers) - Résumé détaillé des modifications - Validation de l’intégrité
Logging: - Journal détaillé des événements - Rotation des fichiers de logs - Niveaux de gravité adaptés - Format ISO pour les horodatages
Structure des fichiers:
project_root/ ├── surveillance_projet.py ├── sauve_projet_qualite_air.py ├── files_ignore.txt ├── surveillance.log └── backup/
- └── JJ_MM_AAAA_HHhMM/
├── projet_qualite_air.zip └── resume_des_modifs.log
Dépendances:
Python 3.8+
python-crontab: Gestion des tâches planifiées
watchdog: Surveillance du système de fichiers
pathlib: Manipulation des chemins
logging: Journalisation avancée
- auto_save_projet.surveillance_projet_qualite_air.load_ignore_patterns()[source]
Charge les patterns à ignorer depuis le fichier files_ignore.txt.
Cette fonction: 1. Lit le fichier files_ignore.txt 2. Parse les patterns en ignorant les commentaires et lignes vides 3. Convertit les patterns en format glob
- Renvoie:
Ensemble des patterns à ignorer
- Type renvoyé:
set
Notes
Ignore les lignes commençant par #
Supprime les espaces en début/fin de ligne
Convertit les patterns Windows en format Unix
- class auto_save_projet.surveillance_projet_qualite_air.ProjectChangeHandler(project_path)[source]
Bases :
FileSystemEventHandlerGestionnaire des événements de modification de fichiers.
- load_ignore_patterns()[source]
Charge les patterns à ignorer depuis le fichier files_ignore.txt.
- Renvoie:
Ensemble des patterns à ignorer
- Type renvoyé:
set
- should_ignore(file_path)[source]
Vérifie si un fichier doit être ignoré selon les patterns.
- Paramètres:
file_path (Path) – Chemin du fichier à vérifier
- Renvoie:
True si le fichier doit être ignoré
- Type renvoyé:
bool
- auto_save_projet.surveillance_projet_qualite_air.verify_cron_status()[source]
Vérifie le statut du cron et son bon fonctionnement.
Cette fonction: 1. Vérifie l’existence de la tâche cron 2. Valide les horaires configurés 3. Contrôle le dernier déclenchement 4. Génère un rapport de statut
- Renvoie:
True si le cron fonctionne correctement
- Type renvoyé:
bool
- auto_save_projet.surveillance_projet_qualite_air.log_cron_execution()[source]
Enregistre l’exécution du cron dans un fichier de log dédié.
- auto_save_projet.surveillance_projet_qualite_air.setup_scheduler()[source]
Configure la planification des sauvegardes selon le système d’exploitation.
Cette fonction: 1. Détecte le système d’exploitation 2. Configure soit Task Scheduler (Windows) soit Cron (Linux) 3. Planifie les sauvegardes toutes les 3 heures 4. Configure le démarrage au boot 5. Vérifie la configuration
Notes
Windows: Utilise Task Scheduler via subprocess
Linux: Utilise python-crontab
Plage horaire: 7h-20h
Vérifie les permissions
- auto_save_projet.surveillance_projet_qualite_air.setup_windows_scheduler()[source]
Configure le planificateur de tâches Windows.
Cette fonction: 1. Crée un dossier personnalisé dans le planificateur 2. Configure les tâches planifiées dans ce dossier 3. Active le démarrage automatique 4. Vérifie les permissions
- auto_save_projet.surveillance_projet_qualite_air.setup_linux_cron()[source]
Configure le cron sous Linux/Unix.
Cette fonction: 1. Utilise python-crontab pour la configuration 2. Configure les sauvegardes périodiques 3. Ajoute une entrée @reboot 4. Vérifie les permissions
- auto_save_projet.surveillance_projet_qualite_air.verify_scheduler_status()[source]
Vérifie l’état du planificateur selon le système d’exploitation.
- Renvoie:
True si la planification est active et correcte
- Type renvoyé:
bool
- auto_save_projet.surveillance_projet_qualite_air.verify_windows_scheduler()[source]
Vérifie l’état des tâches planifiées Windows.