Introduction
Une infrastructure sans sauvegarde est une infrastructure à risque. Qu'il s'agisse d'une erreur humaine, d'une corruption de données ou d'un incident, disposer de copies récentes et externalisées de vos fichiers est vital. Rsync est l'outil idéal : il ne copie que les fichiers modifiés (sauvegarde incrémentale), ce qui le rend extrêmement rapide et économe. Couplé à Cron, il permet d'automatiser entièrement vos sauvegardes vers un serveur distant.
1. Installer Rsync sur les deux serveurs
Rsync doit être présent à la fois sur le serveur source (votre VPS) et sur le serveur de destination (votre stockage de sauvegarde). Il est souvent déjà installé par défaut.
# Sur le VPS source ET sur le serveur de sauvegarde :
sudo apt update
sudo apt install -y rsync
# Vérifier la version
rsync --versionConseil important
Le serveur de destination peut être un second VPS, un serveur de stockage (NAS) ou une offre de stockage dédiée. L'essentiel est qu'il soit accessible en SSH.
2. Configurer une connexion SSH par clé
Pour que Cron puisse lancer les sauvegardes sans intervention, la connexion SSH vers le serveur distant doit se faire sans mot de passe, via une clé SSH.
# Depuis votre VPS source, générer une clé dédiée aux sauvegardes
ssh-keygen -t ed25519 -f ~/.ssh/backup_key -C "backup-vps"
# Copier la clé publique vers le serveur de sauvegarde
ssh-copy-id -i ~/.ssh/backup_key.pub backup_user@IP_SERVEUR_BACKUP
# Tester la connexion (elle ne doit PAS demander de mot de passe)
ssh -i ~/.ssh/backup_key backup_user@IP_SERVEUR_BACKUPConseil important
Utiliser une clé dédiée (backup_key) plutôt que votre clé personnelle permet de la révoquer facilement en cas de besoin, sans impacter vos autres accès.
3. Tester une première sauvegarde manuelle
Avant d'automatiser, lancez Rsync manuellement pour vérifier que tout fonctionne. Cet exemple sauvegarde le dossier /var/www et /etc vers le serveur distant.
rsync -avz --delete \
-e "ssh -i ~/.ssh/backup_key" \
/var/www /etc \
backup_user@IP_SERVEUR_BACKUP:/backups/mon-vps/Conseil important
Les options : -a (archive, préserve permissions/dates), -v (verbeux), -z (compression réseau), --delete (supprime côté backup les fichiers supprimés à la source pour un miroir fidèle).
4. Créer un script de sauvegarde
Centralisez votre commande dans un script réutilisable. Il horodatera chaque exécution dans un fichier journal, utile pour vérifier le bon déroulement des sauvegardes.
nano ~/backup.sh
# Contenu du script :
#!/bin/bash
DATE=$(date '+%Y-%m-%d %H:%M:%S')
SOURCE="/var/www /etc"
DEST="backup_user@IP_SERVEUR_BACKUP:/backups/mon-vps/"
KEY="$HOME/.ssh/backup_key"
echo "[$DATE] Debut de la sauvegarde" >> $HOME/backup.log
rsync -az --delete -e "ssh -i $KEY" $SOURCE $DEST >> $HOME/backup.log 2>&1
echo "[$DATE] Sauvegarde terminee" >> $HOME/backup.log
# Rendre le script exécutable
chmod +x ~/backup.shConseil important
Adaptez les variables SOURCE et DEST à vos besoins. Vous pouvez ajouter d'autres dossiers (ex: une exportation de base de données) à la variable SOURCE.
5. Planifier la sauvegarde avec Cron
Cron est le planificateur de tâches de Linux. Ajoutez une ligne à votre crontab pour exécuter le script automatiquement, par exemple chaque nuit à 3h du matin.
# Éditer la crontab de l'utilisateur
crontab -e
# Ajouter cette ligne pour une exécution quotidienne à 03h00 :
0 3 * * * /bin/bash $HOME/backup.sh
# Vérifier que la tâche est bien enregistrée
crontab -lConseil important
La syntaxe Cron est : minute heure jour mois jour_semaine. Ainsi '0 3 * * *' signifie tous les jours à 3h00. Utilisez crontab.guru pour composer vos propres horaires.
6. Restaurer des données depuis la sauvegarde
Une sauvegarde n'a de valeur que si vous savez la restaurer. La restauration consiste simplement à inverser la source et la destination de la commande Rsync.
# Restaurer le dossier /var/www depuis le serveur de sauvegarde vers le VPS
rsync -avz \
-e "ssh -i ~/.ssh/backup_key" \
backup_user@IP_SERVEUR_BACKUP:/backups/mon-vps/www/ \
/var/www/Conseil important
Testez régulièrement une restauration sur un dossier temporaire : une sauvegarde jamais testée ne doit jamais être considérée comme fiable.
En conclusion
Vos données sont désormais sauvegardées automatiquement et externalisées chaque nuit, sans aucune intervention de votre part. En cas d'incident, vous pourrez restaurer votre VPS en quelques minutes. C'est l'assurance vie indispensable de toute infrastructure sérieuse.
Un VPS fiable pour vos données
VPS NVMe haute performance avec sauvegardes et Anti-DDoS Gcore inclus, dès 5€/mois.
