rsync (Remote Sync) est un utilitaire Linux puissant et efficace qui permet de synchroniser des fichiers et des répertoires entre deux emplacements sur un réseau. Il est couramment utilisé pour les sauvegardes, la mise en miroir des données et le transfert efficace de fichiers en ne copiant que les différences entre la source et la destination.
Ce guide vous guidera à travers l’installation, l’utilisation de base et les techniques avancées de rsync pour vous aider à gérer efficacement les fichiers sur un réseau.
La plupart des distributions Linux sont livrées avec rsync préinstallé. Pour vérifier s’il est installé, exécutez
rsync --version
S’il n’est pas installé, vous pouvez l’installer en utilisant le gestionnaire de paquets de votre distribution :
sudo apt install rsync
sudo yum install rsync
sudo dnf install rsync
sudo pacman -S rsync
📌 Comment transférer des fichiers de Windows vers un serveur distant en utilisant rsync via PuTTY SSH ?
Pour utiliser rsync sur Windows via PuTTY SSH, vous devez avoir installé :
PuTTY pour la connexionSSH
rsync et OpenSSH sur Windows
Pagent (optionnel) pour l’authentification automatique avec la clé SSH
Si vous avez téléchargé MSYS2, vous pouvez installer rsync facilement en utilisant pacman, le gestionnaire de paquets de MSYS2.
pacman -Syu
pacman -Su
cette étape permet de s’assurer que vous disposez de la dernière version du gestionnaire de paquets.
pacman -S rsync
💡 Si vous avez besoin d’openssh pour le transfert SSH, installez-le aussi :
pacman -S openssh
Vérifier l’installation
Pour vérifier que rsync a été installé correctement, exécutez :
rsync --version
La syntaxe de base de rsync est la suivante :
rsync [options] source destination
Pour synchroniser des fichiers entre deux répertoires locaux :
rsync -av /source/répertoire/ /destination/répertoire/
La barre oblique / dans la source garantit que seul le contenu du répertoire est copié, et non le répertoire lui-même.
Pour transférer des fichiers d’un système local vers un serveur distant :
rsync -avz /local/répertoire/ user@remote_host:/remote/répertoire/
*Après avoir ajouté la commande dans MSYS2, nous ajouterons les données SSH pour nous connecter au serveur distant et le résultat sera affiché :
Cette commande permet de copier en toute sécurité les fichiers sur le serveur distant à l’aide de SSH.
Vérifiez si la commande a été exécutée avec succès sur votre serveur distant:
Pour copier des fichiers d’un serveur distant vers votre machine locale. Par défaut, rsync utilise SSH pour une communication sécurisée. Vous pouvez spécifier explicitement SSH avec :
rsync -avz -e ssh /local/répertoire/ user@remote_host:/remote/répertoire/
Si SSH utilise un port autre que celui par défaut (par exemple, 2222), spécifiez-le comme suit :
rsync -avz -e "ssh -p 2222" /local/répertoire/ user@remote_host:/remote/répertoire/
Pour supprimer des fichiers supplémentaires dans la destination qui ne sont pas présents dans la source :
La première étape consiste à ajouter des fichiers supplémentaires dans le terminal PuttySSH :
cd /home/user/test_backup/
touch file1.txt file2.log file3.jpg
mkdir extra_files
touch extra_files/old_file.txt
Maintenant, synchronisez le répertoire sans certains fichiers, et rsync supprimera les fichiers qui ne sont plus dans la source :
rsync -av --delete /source/répertoire/ /destination/répertoire/
qu’est-ce que cela fait ?
Tous les fichiers qui se trouvent sur le serveur mais PAS dans test/local seront supprimés.
Résultat MSYS2
Résultat de PuttySSH
Attention : Utilisez –delete avec précaution, car il supprime définitivement les fichiers de la destination.
Pour exclure des fichiers ou des répertoires spécifiques :
rsync -av --exclude 'fichier_ou_répertoire' /source/ user@remote_host:/destination/
Résultat MSYS2
Résultat PuttySSH
Pour des exclusions multiples, utilisez :
rsync -av --exclude={'file1', 'dir1','*.log'} /source/ user@remote_host:/destination/
Vous pouvez exécuter rsync en arrière-plan à l’aide de nohup:
nohup rsync -avz /source/ user@remote_host:/destination/
Cela permet au processus de se poursuivre même après la déconnexion.
Dans la directive locale, nous avons ajouté un nouveau fichier new_file.txt333333, puis nous avons déconnecté le terminal PuttySSH, et la commande ci-dessus nous permet d’envoyer des fichiers même lorsque le serveur est déconnecté.
Pour programmer une synchronisation automatique à l’aide de cron, ouvrez la crontab :
crontab -e
Ajoutez une tâche pour exécuter rsync tous les jours à minuit :
0 0 * * * rsync -avz /source/ user@remote_host:/destination/
rsync est un outil polyvalent et puissant pour la synchronisation et le transfert de fichiers sur un réseau. Qu’il s’agisse de sauvegarder des données, de mettre en miroir des répertoires ou de migrer des fichiers entre des serveurs, rsync offre une solution efficace et fiable. En tirant parti de ses diverses options et de ses capacités d’automatisation, vous pouvez gérer efficacement vos fichiers dans les environnements Linux.