# Sauvegarde Docker Système de sauvegarde automatique pour services Docker avec gestion intelligente des conteneurs. ## Description Ce projet contient deux scripts Bash pour la sauvegarde et la vérification des services Docker : - **`sauvegarde_docker.sh`** : Script principal de sauvegarde automatique - **`verification_sauvegarde_docker.sh`** : Script de vérification de l'intégrité des sauvegardes ## Fonctionnalités ### Script de sauvegarde (`sauvegarde_docker.sh`) - **Sauvegarde intelligente** : Détecte automatiquement les conteneurs Docker actifs - **Arrêt/redémarrage sécurisé** : Arrête temporairement les conteneurs pendant la sauvegarde pour garantir la cohérence - **Archivage compressé** : Création d'archives `.tar.gz` avec horodatage - **Vérification d'intégrité** : Génération automatique de checksums SHA-256 - **Rétention automatique** : Suppression des sauvegardes de plus de 7 jours - **Journalisation complète** : Logs détaillés avec horodatage - **Gestion d'erreurs** : Statistiques et codes de retour appropriés ### Script de vérification (`verification_sauvegarde_docker.sh`) - **Vérification d'intégrité** : Contrôle des checksums SHA-256 - **Rapport visuel** : Statut clair avec symboles (✓, ✗, ⚠) - **Détection des anomalies** : Identification des fichiers corrompus ou manquants ## Configuration ### Paramètres par défaut ```bash SRV_DIR="/home/docker/srv" # Répertoire source des services BACKUP_DEST="/home/docker/backup" # Répertoire de destination RETENTION_DAYS=7 # Durée de rétention en jours LOG_FILE="/home/docker/docker-backup.log" # Fichier de log ``` ### Prérequis - **Docker** : Requis pour la gestion des conteneurs (optionnel) - **Bash** : Version 4.0 ou supérieure - **Espace disque** : Au moins 1 GB disponible (vérification automatique) - **Permissions** : Accès en écriture aux répertoires de sauvegarde ## Installation 1. Cloner ou télécharger les scripts dans un répertoire 2. Rendre les scripts exécutables : ```bash chmod +x sauvegarde_docker.sh chmod +x verification_sauvegarde_docker.sh ``` 3. Adapter les chemins dans la configuration si nécessaire ## Utilisation ### Sauvegarde manuelle ```bash ./sauvegarde_docker.sh ``` ### Vérification des sauvegardes ```bash ./verification_sauvegarde_docker.sh ``` ### Automatisation avec cron Exemple pour une sauvegarde quotidienne à 2h00 : ```bash # Éditer la crontab crontab -e # Ajouter la ligne suivante 0 2 * * * /chemin/vers/sauvegarde_docker.sh ``` ## Structure des sauvegardes ``` /home/docker/backup/ ├── service1/ │ ├── service1_2025-01-15_02-00-01.tar.gz │ ├── service1_2025-01-15_02-00-01.tar.gz.sha256 │ └── service1_2025-01-16_02-00-01.tar.gz ├── service2/ │ └── service2_2025-01-16_02-00-01.tar.gz └── docker-backup.log ``` ## Logs et monitoring ### Fichier de log Le fichier `/home/docker/docker-backup.log` contient : - Horodatage de chaque opération - Statut des conteneurs Docker - Taille des archives créées - Erreurs et avertissements - Statistiques de fin d'exécution ### Codes de retour - **0** : Sauvegarde réussie sans erreur - **1** : Erreurs détectées (vérifier les logs) ## Sécurité et bonnes pratiques - Les conteneurs sont arrêtés proprement avant sauvegarde - Attente de 5 secondes après arrêt pour garantir la cohérence - Vérification automatique des checksums - Gestion des erreurs avec tentatives de récupération - Logs détaillés pour audit et débogage ## Dépannage ### Problèmes courants 1. **Docker non accessible** : Vérifier l'installation et les permissions 2. **Espace disque insuffisant** : Libérer de l'espace ou ajuster la rétention 3. **Conteneur ne redémarre pas** : Vérifier les logs Docker et la configuration ### Vérification des logs ```bash tail -f /home/docker/docker-backup.log ```