Une panne de disque SSD, une fausse manipulation ou une suppression accidentelle peuvent effacer des mois de configurations et de données en quelques secondes sur votre serveur VPS cloud. Ce tutoriel vous montre comment mettre en place des backups automatiques de votre VPS Linux vers un espace de stockage cloud distant, en utilisant rsync, SSH et cron. L'approche fonctionne sur Ubuntu, Debian, CentOS et Rocky Linux, et s'intègre à toute offre VPS cloud ou serveur dédié chez votre hébergeur.
Prérequis
Pour mettre en place vos backups rsync, vous avez besoin :
- D'un VPS Linux source à sauvegarder, avec accès root et une adresse IP
- D'un second serveur VPS cloud, NAS ou serveur dédié accessible en SSH comme espace de stockage distant
- D'une bande passante suffisante chez votre hébergeur VPS cloud pour les transferts réguliers
- Du paquet
rsyncsur les deux machines (apt install rsyncoudnf install rsync)
Avant de lancer les scripts de backup, vérifiez l'espace disque disponible avec df -h. Un disque SSD NVMe sur le serveur de destination réduit la durée de la première synchronisation complète. Vérifiez aussi la résolution DNS si vous utilisez un nom de domaine plutôt qu'une adresse IP pour joindre le serveur distant.
Créer une clé SSH dédiée aux backups
Pour les backups automatiques, créez une clé SSH dédiée sans passphrase :
ssh-keygen -t ed25519 -C "rsync-backup" -f ~/.ssh/id_rsync_backup -N ""Copiez la clé publique sur le serveur cloud de stockage distant :
ssh-copy-id -i ~/.ssh/id_rsync_backup.pub admin@IP_DISTANTETestez la connexion :
ssh -i ~/.ssh/id_rsync_backup admin@IP_DISTANTE "echo OK"Dans le fichier ~/.ssh/authorized_keys du serveur distant, restreignez la clé à la seule commande rsync :
command="rsync --server -logDtprze.iLsfxCIvu . /backup",no-port-forwarding,no-X11-forwarding,no-ptyCette restriction réduit la surface d'attaque. Pour analyser les tentatives de connexion SSH bloquées, consultez notre guide analyser les échecs de connexion SSH dans les logs Linux.
La commande rsync de référence
Ces scripts de backup synchronisent les répertoires critiques du serveur VPS cloud vers le stockage distant de façon incrémentale. Seuls les blocs modifiés sont transférés, ce qui minimise la consommation de bande passante :
rsync -azP --delete \
--exclude="/proc" --exclude="/sys" --exclude="/dev" \
--exclude="/run" --exclude="/tmp" \
-e "ssh -i ~/.ssh/id_rsync_backup" \
/etc /var /home \
admin@IP_DISTANTE:/backup/vps-source/Options essentielles :
-a: préserve permissions, timestamps, liens symboliques et propriétaires-z: compression du transfert réseau (économise la bande passante)-P: affiche la progression et reprend sur interruption--delete: supprime à la destination les fichiers absents à la source--exclude: exclut les pseudo-systèmes de fichiers du système d'exploitation Linux
Vérifiez que votre firewall autorise les connexions SSH sortantes sur le port 22. Notre guide configurer un firewall VPS avec nftables détaille les règles.
Rotation des backups avec dates
Pour conserver plusieurs versions dans votre espace de stockage cloud, utilisez --backup et --backup-dir :
rsync -azP --delete \
--backup --backup-dir="/backup/archives/$(date +%Y-%m-%d)" \
-e "ssh -i ~/.ssh/id_rsync_backup" \
/etc /var /home \
admin@IP_DISTANTE:/backup/current/Cette technique crée un miroir courant dans current/ et archive les fichiers modifiés dans un sous-dossier daté. Les fichiers inchangés ne sont pas dupliqués sur le disque SSD de destination, ce qui limite la consommation d'espace.
Pour un serveur FiveM ou Minecraft, incluez le répertoire de données. Exportez les bases de données MySQL avec mysqldump avant le backup rsync pour garantir la cohérence. Lors d'une migration de VPS cloud vers un nouveau serveur, cette approche vous permet également de transférer toutes les données en un seul processeur rsync parallélisé.
Automatiser avec cron
Créez le script /usr/local/bin/backup-rsync.sh :
#!/bin/bash
LOG="/var/log/rsync-backup.log"
DATE=$(date +"%Y-%m-%d %H:%M")
echo "[$DATE] Démarrage backup rsync" >> "$LOG"
rsync -az --delete \
--exclude="/proc" --exclude="/sys" \
-e "ssh -i /root/.ssh/id_rsync_backup -o BatchMode=yes" \
/etc /var /home \
admin@IP_DISTANTE:/backup/current/ >> "$LOG" 2>&1
CODE=$?
echo "[$DATE] Fin backup (code: $CODE)" >> "$LOG"
exit $CODERendez-le exécutable, puis planifiez une exécution quotidienne à 3h00 :
chmod +x /usr/local/bin/backup-rsync.sh
crontab -e
# Ligne à ajouter :
0 3 * * * /usr/local/bin/backup-rsync.shBatchMode=yes empêche le daemon SSH de bloquer en attente d'une saisie clavier dans un contexte cron non interactif. Ces scripts s'exécutent sans surcharge notable du processeur sur les synchros incrémentales.
Vérifier et surveiller les backups
Un backup non testé ne vaut rien. Vérifiez le journal après la première exécution :
tail -20 /var/log/rsync-backup.logUn code retour 0 confirme le succès. Vérifiez aussi l'espace disque SSD utilisé sur le serveur cloud distant :
ssh -i ~/.ssh/id_rsync_backup admin@IP_DISTANTE "du -sh /backup/"Configurez une alerte de monitoring VPS pour être notifié si le backup échoue deux nuits consécutives. Un CPU surchargé ou une RAM saturée peuvent provoquer des timeouts sur les gros volumes de données.
Tester la restauration
Testez régulièrement la restauration sur un second serveur VPS cloud de test :
rsync -azP \
-e "ssh -i ~/.ssh/id_rsync_backup" \
admin@IP_DISTANTE:/backup/current/etc/ \
/tmp/test-restauration/Pour sécuriser les backups au repos avec chiffrement, consultez le guide chiffrer les sauvegardes hors site. Pour une stratégie complète avec snapshots et réplication de plusieurs serveurs VPS cloud, la haute disponibilité pour serveur dédié détaille les options avancées.
Besoin d'une offre VPS cloud fiable pour stocker vos backups ou héberger vos services ? Découvrez les offres VPS Linux ElypseCloud.
Découvrir nos VPS Linux