P R O T O J X

Obtenez une réduction de 10% avec le code WELCOME10

Nous contacter ?

[email protected]

feature
Nom de l'auteur
Mathias PAJON
Catégories
Technologies
Date
27/01/2025

Créer une sauvegarde automatique de vos fichiers avec rsync

Un accident arrive vite ! Disque défectueux, erreur de manipulation, ransomware … Mettre en place une sauvegarde incrémentale et automatique avec rsync vous garantit de pouvoir restaurer vos données en quelques minutes — sans dépendre d’outils propriétaires.

rsync est inclus sur la plupart des distributions Linux et macOS. Sa magie : transférer uniquement les blocs modifiés, chiffrer la connexion via SSH et conserver plusieurs versions grâce aux liens durs. Ci‑dessous, un tutoriel complet pour backup / restore en tâche planifiée.

  1. Installer rsync & ouvrir la clé SSH
    Sur la machine d’origine :
    sudo apt install rsync ou dnf install rsync
    Générez une clé Ed25519 sans passphrase :
    ssh-keygen -t ed25519 -C "backup@host"
    Copiez‑la vers le serveur :
    ssh-copy-id user@backup‑server
  2. Créer le script de sauvegarde
    #!/usr/bin/env bash
    # /usr/local/bin/rsync-backup.sh
    SRC="/home/www"
    DEST="user@backup-server:/backups/$(hostname)"
    RSYNC_OPTS="-avz --delete --delete-excluded \
        --link-dest=$DEST/latest \
        --exclude='.cache/' --exclude='*.tmp'"
    
    # Dossier daté pour l'incrémental
    TODAY=$(date +%F_%H-%M)
    ssh user@backup-server "mkdir -p $DEST/$TODAY"
    rsync $RSYNC_OPTS "$SRC/" "$DEST/$TODAY/"
    
    # Met à jour le lien 'latest'
    ssh user@backup-server "ln -sfn $DEST/$TODAY $DEST/latest"
    
    Rendez‑le exécutable : chmod +x /usr/local/bin/rsync-backup.sh
  3. Planifier la tâche avec cron
    crontab -e
    0 3 * * * /usr/local/bin/rsync-backup.sh >> /var/log/rsync-backup.log 2>&1
    → un backup quotidien à 03 h, loggé pour audit.
  4. Limiter la rétention
    # /usr/local/bin/rsync-prune.sh
    KEEP_DAYS=14
    ssh user@backup-server "find /backups/$(hostname) -maxdepth 1 -type d \
        -mtime +$KEEP_DAYS -not -name latest -exec rm -rf {} +"
    
    Ajoutez‑le à cron (hebdomadaire) pour libérer l’espace disque.
  5. Tester la restauration
    Listez vos snapshots :
    ssh user@backup-server "ls /backups/$(hostname)"
    Restaurez un fichier :
    scp user@backup-server:/backups/$(hostname)/2025-04-19_03-00/home/www/config.php ./

Conseils bonus :
• Activez Compression=yes dans ~/.ssh/config si votre bande passante est limitée.
• Sécurisez davantage avec from="IP_SOURCE" et command="rsync --server …" dans authorized_keys.
• Dupliquer encore ? Montez un stockage chiffré (restic, borg) sur un cloud S3 puis lancez rsync vers ce volume pour une off‑site copy.

« Sauvegarder n’est pas une option ; automatiser, c’est la seule manière de ne jamais l’oublier. »

Mathias PAJON

En à peine quelques lignes de bash et un cron, vous disposez d’une solution incrémentale, chiffrée et restaurable en un copier‑coller. Prenez le temps de tester votre procédure ; une sauvegarde n’a de valeur que si la restauration fonctionne le jour J !

Tags lié au blog