Aller au contenu principal
Script Sauvegarde Automatique Restic - Knowledges
⭐ Vedette

Script de Sauvegarde Automatique avec Restic

2min
Temps de lecture
100
Lectures
10
Commentaires
OwlSystems

OwlSystems

Date de publication

TL;DR

Script complet pour automatiser les sauvegardes de sites web avec Restic et gestion des logs

Script Principal

#!/bin/bash
# backup_all_sites.sh

RESTIC_REPO="/datafs/backup/restic"
RESTIC_PASSWORD_FILE="/root/.restic_password"
BASE_DIR="/cephfs/sites"
LOG_FILE="/var/log/site_backups.log"

{
    echo "=== Sauvegarde démarrée le $(date) ==="

    for domain in $(ls "$BASE_DIR"); do
        DOMAIN_DIR="$BASE_DIR/$domain"

        for site in $(ls "$DOMAIN_DIR"); do
            SITE_DIR="$DOMAIN_DIR/$site"
            SITE_NAME="${site}.${domain}"

            echo "Sauvegarde: $SITE_NAME"

            restic -r "$RESTIC_REPO" --password-file "$RESTIC_PASSWORD_FILE" backup "$SITE_DIR"                 --tag "$(date +%Y-%m-%d)"                 --tag "$SITE_NAME"                 --tag "auto-backup"

            echo "OK: $SITE_NAME"
        done
    done

    echo "=== Sauvegarde terminée le $(date) ==="
    echo ""
} >> "$LOG_FILE" 2>&1

Configuration Préalable

1. Créer le fichier de mot de passe

echo "votre_mot_de_passe_restic" > /root/.restic_password
chmod 600 /root/.restic_password

2. Rendre le script exécutable

chmod +x backup_all_sites.sh

Utilisation

Exécution manuelle

./backup_all_sites.sh

Planification avec Cron

# Éditer la crontab
crontab -e

# Ajouter pour une exécution quotidienne à 2h du matin
0 2 * * * /chemin/vers/backup_all_sites.sh

Structure des Tags

Chaque sauvegarde est tagguée avec : - Date : 2025-10-06 - Nom du site : demo.owlsystems.fr - Type : auto-backup

Consultation des Logs

# Voir les derniers logs
tail -f /var/log/site_backups.log

# Rechercher un site spécifique
grep "demo.owlsystems.fr" /var/log/site_backups.log

Script de Vérification

#!/bin/bash
# verify_backups.sh

RESTIC_REPO="/datafs/backup/restic"
RESTIC_PASSWORD_FILE="/root/.restic_password"

echo "=== Vérification des sauvegardes ==="
restic -r "$RESTIC_REPO" --password-file "$RESTIC_PASSWORD_FILE" snapshots
restic -r "$RESTIC_REPO" --password-file "$RESTIC_PASSWORD_FILE" check

Gestion des Erreurs

Le script capture toutes les sorties (stdout et stderr) dans le fichier de log. En cas d'erreur :

  1. Vérifier le mot de passe dans /root/.restic_password
  2. Vérifier les permissions du repository
  3. Consulter les logs détaillés

Restauration d'un Site Spécifique

#!/bin/bash
# restore_site.sh

if [ -z "$1" ]; then
    echo "Usage: $0 <nom_du_site>"
    echo "Exemple: $0 demo.owlsystems.fr"
    exit 1
fi

SITE_NAME=$1
RESTIC_REPO="/datafs/backup/restic"
RESTIC_PASSWORD_FILE="/root/.restic_password"

DOMAIN=$(echo $SITE_NAME | cut -d. -f2)
SITE=$(echo $SITE_NAME | cut -d. -f1)

echo "Restauration de $SITE_NAME..."
cd "/cephfs/sites/$DOMAIN/"
restic -r "$RESTIC_REPO" --password-file "$RESTIC_PASSWORD_FILE" restore latest --tag "$SITE_NAME" --target ./

Avantages de cette Solution

  • Automatisation complète de tous les sites
  • Logs centralisés pour le monitoring
  • Sécurité avec mot de passe en fichier
  • Tags organisés pour restauration ciblée
  • Gestion d'erreurs robuste
OwlSystems

OwlSystems

Parcours méthodologique
10 rue de la mare boutillier
Grisy-Suisnes, 77166
(prix d'un appel local / WhatsApp)
Contactez-nous
Nos bureaux

Présents à Paris et dans toute l'Île-de-France pour vous accompagner

Actualités

Restez informé des dernières actualités cybersécurité

Follow Us