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
sudosur le VPS source
Conseil : créez un utilisateur dédié
backupsur 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.logaprè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).