Files

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

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 :
    chmod +x sauvegarde_docker.sh
    chmod +x verification_sauvegarde_docker.sh
    
  3. 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

  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

tail -f /home/docker/docker-backup.log