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 automatiqueverification_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.gzavec 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
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
- Cloner ou télécharger les scripts dans un répertoire
- Rendre les scripts exécutables :
chmod +x sauvegarde_docker.sh chmod +x verification_sauvegarde_docker.sh - Adapter les chemins dans la configuration si nécessaire
Utilisation
Sauvegarde manuelle
./sauvegarde_docker.sh
Vérification des sauvegardes
./verification_sauvegarde_docker.sh
Automatisation avec cron
Exemple pour une sauvegarde quotidienne à 2h00 :
# É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
- Docker non accessible : Vérifier l'installation et les permissions
- Espace disque insuffisant : Libérer de l'espace ou ajuster la rétention
- Conteneur ne redémarre pas : Vérifier les logs Docker et la configuration
Vérification des logs
tail -f /home/docker/docker-backup.log