Que vous soyez administrateur ou simple utilisateur, vous avez probablement besoin de sauvegarder régulièrement vos fichiers ou de les synchroniser entre plusieurs systèmes. Si cette tâche implique de tout réécrire à chaque fois, elle devient vite longue et fastidieuse. C'est là qu'intervient Linux Rsync, l'outil de synchronisation vers un serveur distant. Ce guide vous présente les commandes Rsync les plus utiles pour tirer parti de ses transferts rapides et sécurisés.
Qu'est-ce que l'utilitaire Rsync ?
Synchronisation à distance (Rsync) est une commande Linux/Unix bien connue qui permet de copier et de synchroniser des fichiers et des répertoires, que ce soit à distance ou en local. Rsync vous permet d'effectuer diverses opérations sur vos données : synchronisation, copie et sauvegarde. Vous pouvez également répliquer votre système Linux sur un autre.
L'intérêt principal de Rsync pour les transferts vers un serveur distant réside dans sa rapidité : pour transférer des données entre deux sources, il ne tient compte que des différences entre elles. Autrement dit, Rsync vous évite de perdre du temps en transferts inutiles, en ne traitant que ce qui a changé entre les deux systèmes Linux.
Pourquoi utiliser Rsync ?
Il existe de nombreux outils de sauvegarde disponibles. La question est : qu'est-ce qui distingue Rsync des autres utilitaires et commandes ?
Par exemple, vous pouvez utiliser le Protocole de transfert de fichiers (FTP) pour obtenir une copie locale de votre site, ou le Protocole de copie sécurisée (SCP) pour cette même tâche. Ces deux options ont cependant leurs limites. FTP ne chiffre pas les données, ce qui est problématique. Quant à SCP, il évite certes les transferts non chiffrés contrairement à FTP, mais il est plus lent car il établit un tunnel pour chaque transfert.
Pour contourner ces problèmes, une alternative consiste à utiliser Rsync vers un serveur distant avec chiffrement par clé (communément appelé Rsync SSH ou Rsync over SSH). Cette méthode évite l'envoi de données en double et utilise une clé SSH. À noter également que Rsync compresse les données à l'envoi et les décompresse à la réception, ce qui réduit la consommation de bande passante.
Comment installer Rsync ?
Rsync est probablement déjà installé sur votre système, mais voici les détails. Avant de commencer, assurez-vous que SSH est installé sur les deux machines, source et destination, puisque nous allons utiliser Rsync over SSH.
Étape 1 : Vérifier la version de SSH
Pour vérifier la version de SSH installée, exécutez la commande suivante :
ssh -V
Pour utiliser Rsync vers un serveur distant, vous avez besoin d'un serveur local (la source) et d'un serveur distant. Veillez également à ce que le serveur local dispose des privilèges administrateurs (sudo).
Étape 2 : Installer Rsync sur Linux
La commande suivante permet d'installer Rsync sur Ubuntu, Linux Mint et Debian :
sudo apt install rsync -y
Si vous utilisez d'autres distributions Linux, comme Fedora, CentOS, AlmaLinux ou Red Hat, exécutez la commande suivante pour installer le service Rsync vers un serveur distant sur votre système :
sudo dnf install rsync
Remarque : apt est un gestionnaire de paquets utilisé dans les distributions basées sur Debian.
Étape 3 : Démarrer Rsync
Démarrez maintenant Rsync et activez-le au démarrage à l'aide des commandes suivantes :
sudo systemctl start rsync
sudo systemctl enable rsync
Étape 4 : Vérifier l'installation de Rsync
Exécutez la commande suivante pour confirmer que Rsync est correctement installé et connaître la version utilisée sur votre système Linux :
rsync --version
La section suivante explique comment utiliser cet outil pour créer des sauvegardes via l'authentification par clé.
Comment créer des sauvegardes avec Rsync over SSH ?
La création de sauvegardes incrémentielles est l'un des cas d'usage de Rsync over SSH. Examinez la commande suivante pour comprendre son fonctionnement :
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
L'exécution de la commande ci-dessus synchronise sourceDir et destinationDir. Cette commande inclut d'autres options à connaître, comme -a (archive) et -v (verbose). Notez que -e ssh Cette option nécessite que la connexion Rsync passe par le protocole SSH.
Si vous souhaitez que la connexion SSH soit acceptée sur un port autre que le port par défaut (port 22), vous devez indiquer le numéro de port après -e ssh. Consultez la commande suivante pour comprendre son fonctionnement.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
Dans la commande ci-dessus, nous supposons que nous voulons utiliser le port 1998 pour SSH au lieu du port 22.
Rsync vers un serveur distant via SSH propose d'autres options qui peuvent s'avérer très utiles. Par exemple, l'option –partial vous permet de reprendre un transfert partiel interrompu en cas de problème, comme une interruption de Rsync. Vous pouvez également suivre la progression du transfert de fichier en cours grâce à l' –progress option. De plus, l'utilitaire Linux Rsync vers un serveur distant vous permet d'utiliser ces deux fonctionnalités en même temps. Pour cela, utilisez le -p flag dans la ligne de commande.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
La commande Rsync vers un serveur distant avec clé permet de compresser les données avant de les transférer vers la destination. Même si cela sollicite votre CPU pour effectuer la compression, cette approche reste très utile car elle accélère le transfert de fichiers et réduit la consommation de bande passante.
Vous pouvez utiliser la commande Rsync pour copier des fichiers et des répertoires, qu'ils soient distants ou locaux. Le principal avantage de Rsync est qu'il repose sur l' algorithme de transfert delta, qui évite de copier des données en double de la source vers la destination. Comme mentionné précédemment, cette fonctionnalité de l'utilitaire Rsync vers un serveur distant est particulièrement utile pour gérer des sauvegardes quotidiennes et la mise en miroir de systèmes. Cela étant dit, voyons comment utiliser la commande Rsync pour des cas d'usage locaux.
Comment utiliser Rsync pour une synchronisation locale ?
Avant d'aborder la synchronisation locale et l'utilisation de la commande Rsync à cet effet, il est utile de connaître la structure générale d'une commande Rsync locale, présentée ci-dessous :
rsync [options] [Source] [Destination]
Copier des fichiers en local
Supposons que nous voulions synchroniser ou copier un fichier depuis le répertoire bureau (appelé Cloudzy) vers /home/Public ; voici la commande à saisir :
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
La commande Rsync ci-dessus comprend trois options : -zvh ; en utilisant -z, votre fichier sera compressé pendant le transfert. l'option v correspond à la sortie verbeuse, et l' option h permet d'afficher les résultats dans un format lisible par l'humain.
Copier des répertoires localement
Pour copier le répertoire du bureau (appelé Cloudzy) vers /home/Public dossier ; saisissez la commande suivante :
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
La -a l'option dans cette commande archive les répertoires et les fichiers lors de la synchronisation.
Vous pouvez rapidement vérifier la liste des répertoires du dossier de destination pour confirmer si le répertoire a bien été copié. Pour cela, utilisez la commande suivante :
ls -ld /home/Public
Synchronisation récursive de fichiers et de répertoires en local (Rsync récursif)
Et s'il y avait plusieurs répertoires et fichiers dans le /desktop/Cloudzy, et que vous souhaitiez les copier récursivement via la commande Rsync Linux ?
Dans ce cas, utilisez l' option -r pour synchroniser récursivement vos fichiers et répertoires locaux. Vous pouvez également utiliser l' option archive (-a) car elle couvre d'autres cas d'usage, notamment la copie récursive. Consultez la commande ci-dessous pour vous familiariser avec les commandes Rsync récursives.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
Copier des répertoires et des fichiers du système local vers un système distant
En dehors des caractéristiques de Rsync vers un serveur distant Linux, mentionnées dans les sections précédentes, cette commande bien connue permet également de synchroniser des fichiers et des répertoires depuis la machine locale vers le système distant.
Supposons que nous voulions copier un dossier (/desktop/Cloudzy/nouveaudossier) depuis la machine locale vers le système distant (avec 192.168.1.79) sous /mycpt ; voici un exemple illustrant son fonctionnement :
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Comment copier des répertoires sans leurs fichiers avec Rsync ?
Dans certains cas, il peut être utile d'utiliser les fonctionnalités de Linux Rsync vers un serveur distant pour copier des répertoires sans leurs fichiers. Cette synchronisation peut s'effectuer du serveur distant vers la machine locale, ou dans le sens inverse.
Dans cet article, nous utilisons le système distant à l'adresse 192.168.1.79. Supposons que nous l'ayons dans le dossier /mycpt et que nous voulions copier le répertoire /desktop/Cloudzy depuis le système local sans inclure ses fichiers. Entrez la commande suivante pour ce faire :
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
Autres commandes Rsync utiles
Voici quelques commandes Linux Rsync supplémentaires qui peuvent vous être utiles.
Définir une taille maximale pour le transfert de fichiers avec Rsync
Vous pouvez définir une limite de taille pour les transferts de fichiers via la commande Rsync. C'est particulièrement utile lorsque vous exécutez Rsync régulièrement vers un serveur distant, dans des contextes où la bande passante et le temps sont des facteurs importants. La commande suivante montre comment configurer une limite de taille pour les transferts de fichiers Rsync :
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Définir une taille minimale pour le transfert de fichiers avec Rsync
Tout comme pour la taille maximale, vous pouvez définir la taille minimale des fichiers à transférer via Rsync vers le serveur distant. Dans la commande ci-dessous, nous fixons la taille minimale à 10k :
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
Supprimer les fichiers de la source après la synchronisation
Une fois la commande Rsync exécutée, il peut arriver que vous n'ayez plus besoin des fichiers sur le système source. Dans ce cas, utilisez la commande Linux Rsync suivante pour les supprimer de la source :
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Simulation à blanc
Si vous débutez avec l'utilitaire Linux Rsync et que vous n'êtes pas encore familier avec ses options, une simulation à blanc est une bonne façon de commencer. En mode simulation, Rsync n'apporte aucune modification aux fichiers, mais affiche le résultat de la commande. Une fois que vous êtes prêt à l'exécuter réellement, supprimez l'option –exécution-simulée et lancez la commande dans le terminal. La commande suivante vous montre comment utiliser cette fonctionnalité.
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Récapitulatif : utiliser les commandes Linux Rsync
Cet article a expliqué comment utiliser les fonctionnalités de Linux Rsync vers un serveur distant (et Rsync vers un serveur local) pour différents cas d'usage, notamment mise en miroir du système, créant une sauvegarde de fichiers, et copiant des fichiers et répertoires localement et à distance de façon efficace. Cette commande Linux bien connue vous permet de bénéficier de transferts de fichiers rapides tout en utilisant SSH et la compression de données.
Obtenez un Linux VPS économique ou premium pour héberger votre site web ou votre bureau à distance, au meilleur prix du marché. VPS fonctionne sur Linux KVM pour une meilleure efficacité, sur du matériel performant avec stockage NVMe SSD pour des vitesses accrues.
Lire la suitePour tirer le meilleur parti de ce système d'exploitation, obtenez une Linux VPS solution auprès de Cloudzy, avec des plans d'hébergement basés sur KVM. Nous vous proposons des services VPS haute performance avec 99,95 % de disponibilité, une stabilité éprouvée, une latence minimale, des centres de données répartis dans le monde entier (12 emplacements), un stockage SSD ultra-rapide et un support technique 24h/24, 7j/7. Vous pouvez démarrer avec votre VPS Linux à partir de 4,95 $ et monter en puissance selon vos besoins.
Questions fréquemment posées
Quel port TCP Rsync utilise-t-il ?
SSH utilise généralement le port 22 par défaut. Ainsi, lorsque vous utilisez rsync via SSH, il fonctionnera sur ce port. En revanche, avec le démon Rsync, c'est le port 873 qui sera utilisé.
Qu'est-ce que Rsync ?
Rsync est un utilitaire Linux permettant de synchroniser des fichiers et des répertoires, localement ou à distance. La commande Rsync vous permet d'effectuer diverses opérations sur vos données : synchronisation, copie et sauvegarde.