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:

  1. 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

  2. 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

  3. 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é

  4. 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 : FileSystemEventHandler

Gestionnaire des événements de modification de fichiers.

__init__(project_path)[source]
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

on_modified(event)[source]

Called when a file or directory is modified.

Paramètres:

event (DirModifiedEvent or FileModifiedEvent) – Event representing file/directory modification.

trigger_backup()[source]
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.

auto_save_projet.surveillance_projet_qualite_air.verify_linux_cron()[source]

Vérifie l’état des tâches cron sous Linux/Unix.

auto_save_projet.surveillance_projet_qualite_air.main()[source]

Fonction principale de surveillance.