← Retour aux projets

Script d'automatisation de sauvegarde système

Technologies : Python 3, Bash, Crontab, SHA-256, sendmail
Durée : 2 semaines de développement, en production depuis
Contexte : Mission de stage chez TechData

1. Problématique initiale

L'entreprise manquait d'une solution centralisée et légère pour effectuer des sauvegardes régulières des fichiers de configuration réseau et des bases de données. Les sauvegardes existantes étaient déclenchées manuellement par les techniciens, de façon irrégulière, sans vérification de leur intégrité ni traçabilité en cas d'échec. Le besoin exprimé était un outil autonome, capable de tourner sans surveillance humaine et sans impacter la bande passante durant les heures de travail.

2. Analyse & choix techniques

Python a été choisi pour la logique métier (sélection des répertoires, calcul d'empreintes, gestion des erreurs) pour sa lisibilité et sa gestion native des exceptions, complété par des appels Bash pour les opérations système bas niveau (compression, permissions). Crontab a été retenu plutôt qu'un service dédié pour sa simplicité de maintenance par une petite équipe technique.

3. Fonctionnalités développées

4. Difficultés rencontrées

Le principal défi a été de garantir que le script ne s'exécute jamais partiellement de façon silencieuse : une compression interrompue en cours de route aurait pu laisser une archive corrompue perçue comme valide. La solution a consisté à écrire l'archive dans un répertoire temporaire et à ne la déplacer vers son emplacement final qu'une fois le contrôle d'intégrité validé.

5. Déploiement & suivi

Le script a été intégré dans la crontab du serveur principal pour une exécution nocturne à 02h00, en dehors des heures de forte activité réseau. Il tourne actuellement en production sans interruption depuis sa mise en place, avec un historique de rapports mail permettant de vérifier a posteriori qu'aucune sauvegarde n'a été manquée.

6. Résultat & compétences acquises

Ce projet a permis de passer d'une pratique manuelle et irrégulière à un processus fiable et traçable, sans charge de maintenance pour l'équipe. Il a été l'occasion de manipuler en profondeur la gestion d'erreurs en Python, l'articulation entre scripts Python et commandes système, et la conception d'un outil pensé pour fonctionner sans surveillance humaine.