Retourner sur le site

Sauvegardes avec rsync

Sauvegardes incrémentielles d'un VPS HolyCloud vers un serveur distant via SSH, avec exclusions et planification cron.

Sauvegardes avec rsync

rsync copie uniquement les fichiers modifiés depuis votre VPS Linux HolyCloud vers un autre serveur (second VPS, NAS ou machine de secours) via SSH. C'est une solution légère, sans agent propriétaire, idéale en complément des snapshots fournis dans l'espace client.

Prérequis

  • Un VPS source HolyCloud (Ubuntu 22.04/24.04 ou Debian 12)
  • Un serveur de destination accessible en SSH (clé ou mot de passe)
  • Espace disque suffisant sur la destination
  • Accès sudo sur le VPS source

Conseil : créez un utilisateur dédié backup sur la destination, avec accès limité au répertoire de sauvegarde.

Étape 1 : installer rsync et préparer SSH

Sur le VPS source et la destination :

sudo apt update
sudo apt install -y rsync openssh-client

Générez une clé SSH dédiée aux sauvegardes (sans passphrase pour l'automatisation cron, ou avec passphrase + ssh-agent si vous préférez plus de sécurité) :

sudo -u backup ssh-keygen -t ed25519 -f /home/backup/.ssh/id_backup -N ""
sudo -u backup ssh-copy-id -i /home/backup/.ssh/id_backup.pub backup@IP_DESTINATION

Testez la connexion :

sudo -u backup ssh -i /home/backup/.ssh/id_backup backup@IP_DESTINATION "echo OK"

Étape 2 : première synchronisation manuelle

Créez le répertoire cible sur la destination, puis lancez un dry-run pour vérifier ce qui sera copié :

sudo rsync -avzn --delete \
  -e "ssh -i /home/backup/.ssh/id_backup" \
  /etc/ /var/www/ /home/ \
  backup@IP_DESTINATION:/srv/backups/vps-prod/

Options utiles :

| Option | Rôle |

|--------|------|

| -a | Archive (permissions, dates, liens) |

| -v | Verbose |

| -z | Compression réseau |

| -n | Simulation (dry-run) |

| --delete | Supprime sur la destination les fichiers absents de la source |

Lancez la copie réelle en retirant -n :

sudo rsync -avz --delete \
  -e "ssh -i /home/backup/.ssh/id_backup" \
  /etc/ /var/www/ /home/ \
  backup@IP_DESTINATION:/srv/backups/vps-prod/

Étape 3 : motifs d'exclusion

Ne sauvegardez pas le cache système, les logs volumineux ou les montages temporaires. Créez /etc/rsync-excludes.txt :

/proc/*
/sys/*
/dev/*
/tmp/*
/run/*
/mnt/*
/media/*
/lost+found
/var/cache/*
/var/tmp/*
*.swp
*.log

Utilisez-le ainsi :

sudo rsync -avz --delete \
  --exclude-from=/etc/rsync-excludes.txt \
  -e "ssh -i /home/backup/.ssh/id_backup" \
  / backup@IP_DESTINATION:/srv/backups/vps-prod-root/

Pour exclure un seul dossier sans fichier :

sudo rsync -avz --exclude 'node_modules/' /var/www/monapp/ backup@IP_DESTINATION:/srv/backups/monapp/

Étape 4 : planifier avec cron

Éditez la crontab root (ou de l'utilisateur backup) :

sudo crontab -e

Exemple : sauvegarde quotidienne à 3 h du matin, avec journalisation :

0 3 * * * /usr/bin/rsync -avz --delete --exclude-from=/etc/rsync-excludes.txt -e "ssh -i /home/backup/.ssh/id_backup -o BatchMode=yes" /etc/ /var/www/ /home/ backup@IP_DESTINATION:/srv/backups/vps-prod/ >> /var/log/rsync-backup.log 2>&1

BatchMode=yes évite qu'un job cron reste bloqué en attente de mot de passe.

Vérification

  • Comparez la taille des données : du -sh /srv/backups/vps-prod/ sur la destination
  • Relancez un dry-run : les transferts listés doivent être minimes après la première passe
  • Consultez /var/log/rsync-backup.log après l'exécution cron

Bonnes pratiques HolyCloud

  • Combinez rsync avec les snapshots de votre VPS dans le panel HolyCloud avant une mise à jour majeure
  • Chiffrez les sauvegardes sensibles (gpg, stockage chiffré côté destination)
  • Testez une restauration au moins une fois (copie inverse rsync ou extraction ciblée)

Besoin d'aide ?

Contactez le support HolyCloud depuis votre espace client si la synchronisation échoue (pare-feu, clés SSH, espace disque).