3.9 KiB
3.9 KiB
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