
Lorsqu’un serveur est configuré proprement – services optimisés, sécurité en place, applications déployées – il est souvent utile de pouvoir répliquer cette configuration sur une autre machine. Que ce soit pour du scaling, du backup, un environnement de test ou simplement pour gagner du temps lors de futures installations.
Inutile de recourir à des solutions complexes ou à des outils d’orchestration si le besoin est ponctuel ou ciblé. Une commande rsync
bien construite, associée à une connexion SSH, permet de cloner rapidement une configuration serveur de manière fiable et maîtrisée.
✅ Prérequis
Pour suivre cette méthode, il vous faut :
- Un accès SSH à la machine source et à la machine cible.
- Le paquet
rsync
installé (généralement présent par défaut). - Deux systèmes Linux relativement similaires (Debian vers Debian, par exemple).
- Des sauvegardes si vous intervenez sur des machines en production.
1. Cloner (presque) l’intégralité d’un système
Voici une commande pour synchroniser une machine entière vers un dossier /clone/
sur la machine cible :
rsync -aAXHv --numeric-ids \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/var/lib/docker"} \
/ root@ip-cible:/clone/
Cette commande conserve :
- les droits utilisateurs/groupes
- les ACLs et attributs étendus
- les fichiers système
- tout le contenu d’un Linux classique, sauf les dossiers dynamiques ou non pertinents
Cette approche convient bien si vous souhaitez ensuite reconstruire une image complète (à partir d’un LiveCD, par exemple) ou migrer un environnement à l’identique.
2. Copier uniquement les éléments de configuration
Si vous souhaitez seulement répliquer la configuration d’un serveur (sans les données lourdes), concentrez-vous sur les dossiers suivants :
rsync -avz --progress -e ssh \
/etc /opt /usr/local/bin /var/www \
root@ip-cible:/backup_config/
Ces dossiers contiennent en général :
/etc
: les configurations système et des services/opt
: des applications installées manuellement/usr/local/bin
: scripts ou utilitaires ajoutés à la main/var/www
: vos projets web ou services HTTP
3. Cloner un site web ou une application
Pour une migration ou synchronisation applicative :
rsync -avz -e ssh /var/www/mon-app/ user@ip-cible:/var/www/mon-app/
Et pour la base de données :
mysqldump -u root -p base > dump.sql
scp dump.sql user@ip-cible:~
4. Répliquer les utilisateurs et groupes système
Si vous souhaitez conserver les utilisateurs de la machine source, vous pouvez copier manuellement les fichiers suivants :
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
⚠️ À manipuler avec précaution, surtout si vous intervenez sur un système existant. Idéalement, n’extrayez que les entrées nécessaires avec getent
.
5. Synchronisation régulière (backup, haute disponibilité)
Pour maintenir deux serveurs synchronisés (ex : contenu web, logs, sauvegardes), vous pouvez planifier des tâches rsync
régulières :
rsync -a --delete /var/www/ root@ip-cible:/var/www/
L’option --delete
permet de supprimer les fichiers obsolètes sur le serveur de destination. Testez toujours avec --dry-run
pour vérifier l’impact :
rsync -a --delete --dry-run ...
6. Quelques options rsync
utiles
Option | Rôle |
---|---|
-a |
Mode archive (conserve les permissions, dates, etc.) |
-X |
Copie les ACLs |
-A |
Copie les attributs étendus (xattr) |
--numeric-ids |
Garde les UID/GID exacts (utile pour la cohérence) |
--delete |
Supprime les fichiers absents dans la source |
--exclude |
Ignore des dossiers ou fichiers spécifiques |
--progress |
Affiche la progression du transfert |
7. Où cela fonctionne-t-il bien ?
Cette méthode est adaptée à de nombreux cas :
- Clonage de VPS (ex : Hetzner, D4.FR, OVHcloud, etc.)
- Migration d’environnements sur serveurs dédiés
- Réplication entre conteneurs ou machines locales (ex : VirtualBox, LXC, KVM)
Pour aller plus loin
Une fois familiarisé avec rsync
, vous pouvez :
- En faire un script de déploiement rapide (bash)
- L’intégrer dans un playbook Ansible
- L’utiliser avec une clé SSH sans mot de passe pour les automatisations
Conclusion
Cloner une configuration serveur avec rsync
et SSH reste une solution simple, efficace et peu intrusive, à condition de bien maîtriser ce que l’on copie (et ce que l’on exclut).
C’est une excellente alternative pour ceux qui veulent rester proches de leur système et comprendre ce qui se passe à chaque étape.