Rsync, abréviation de synchronisation à distance , est une commande Linux utilisée pour copier et synchroniser des fichiers, entre 2 systèmes Linux. Il fonctionne de manière à ce que toute modification supplémentaire apportée à un fichier ou à un répertoire soit répliquée sur un autre système Linux.
Avec la commande Linux rsync, vous pouvez copier et synchroniser de manière transparente les sauvegardes localement et à distance entre les systèmes et serveurs Linux. Dans cet article, nous examinerons diverses options de commande que vous pouvez utiliser avec la commande rsync.
Syntaxe de base pour la commande Linux rsync
La syntaxe de rsync est brièvement résumée ci-dessous.
$ rsync options source destination
Options utilisées avec la commande rsync
- -z :Cela compresse les données.
- -v :Ceci affiche le processus en mode détaillé.
- -r :L'option copie les données de manière récursive (Cependant, l'option ne conserve pas les horodatages et les autorisations de fichiers pendant le transfert de données).
- -h :Cela génère des informations dans un format lisible par l'homme.
- -a :Cela permet non seulement de copier des fichiers de manière récursive, mais également de préserver les liens symboliques, les horodatages, les autorisations de fichiers ainsi que les propriétés des utilisateurs et des groupes.
Copier les fichiers et répertoires localement
Vous pouvez synchroniser un fichier localement d'un emplacement à un autre sur une machine Linux en utilisant l'exemple fourni ci-dessous.
$ rsync -zvh backup.tar /opt/backup_dir
Dans l'exemple ci-dessus, l'archive tar backup.tar
est copié et synchronisé avec le /opt/backup_dir
répertoire.
Exemple de sortie
Pour copier un répertoire localement d'un emplacement à un autre :
La syntaxe sera similaire à la copie de fichiers, sauf que dans ce cas, nous utilisons le -a
drapeau pour la copie récursive.
Dans l'exemple ci-dessous, nous copions et synchronisons les deb_packages
répertoire vers le /opt/backup_dir
répertoire.
$ rsync -azvh deb_packages /opt/backup_dir
Exemple de sortie
Copier/synchroniser des fichiers ou des répertoires vers et depuis un serveur distant
Pour copier un répertoire sur un serveur distant, le nom d'utilisateur et l'adresse IP du serveur doivent être spécifiés à côté du dossier de destination.
Dans l'exemple ci-dessous, les deb_packages
répertoire est copié sur un serveur distant avec une IP 66.152.163.19
à l'aide des informations d'identification de l'utilisateur racine et enregistrées dans le répertoire d'accueil racine.
$ rsync -avz deb_packages [email protected]:
Exemple de sortie
Pour copier et synchroniser un répertoire d'un serveur distant vers un PC local :
Pour copier et synchroniser des fichiers d'un système distant vers un système Linux local, utilisez l'exemple ci-dessous
$ rsync -avzh [email protected]:documents /opt/backup_dir
Dans l'exemple ci-dessus, le répertoire documents
est copié récursivement depuis le système distant avec une IP 66.152.163.19
au système local dans le /opt/backup_dir
répertoire.
Commande Rsync sur SSH
Rsync peut être utilisé avec le protocole SSH pour sécuriser ou crypter les fichiers envoyés vers et depuis un système Linux. cela garantit que personne ne peut écouter les données que vous transférez sur le réseau.
Pour copier un fichier d'un serveur local vers un serveur distant à l'aide de rsync sur SSH :
Dans cet exemple, nous utiliserons le -e
option avec rsync pour spécifier un protocole, dans ce cas, SSH.
$ rsync -avhze ssh backup.tar [email protected]:/backup_dir
Exemple de sortie
Pour copier un fichier d'un serveur distant vers un système local à l'aide de rsync sur SSH :
Tout comme dans l'exemple précédent, la commande rsync est utilisée avec le -e
option.
$ rsync -avzhe ssh [email protected]:/backup_dir /tmp/
Exemple de sortie
Afficher la progression lors du transfert de données avec la commande rsync
Si vous souhaitez afficher la progression pendant le transfert de données, utilisez le --progress
option. Cela affiche le fichier et le temps estimé jusqu'à l'achèvement du transfert de données.
Exemple de sortie
Commande Linux rsync avec les options –include et –exclude
Ces options ci-dessus aident les utilisateurs à include
et exclude
fichiers qu'ils souhaitent inclure ou exclure du processus de synchronisation.
Dans l'exemple ci-dessous, la commande rsync inclura ces fichiers dans /var/lib
répertoire qui commence par 'p' et exclut tous les autres fichiers et répertoires.
$ rsync -avz --include 'p*' --exclude '*' /var/lib [email protected]:/opt/backup_dir
Exemple de sortie
Définir la taille maximale des fichiers à transférer
Vous pouvez définir la taille maximale du fichier à transférer et à synchroniser à l'aide de l'option "–max-size".
$ rsync -avzh --max-size='50M' deb_packages [email protected]:/opt/backup-dir
La commande ci-dessus limite le transfert de fichier dans deb_packages
répertoire à 50 Mo. Cela implique que seuls les fichiers égaux ou inférieurs à 50 Mo seront transférés et synchronisés.
Exemple de sortie
Supprimer les fichiers source après un transfert réussi
Si vous faites une copie de sauvegarde de vos fichiers vers une cible distante mais que vous ne souhaitez pas conserver une copie locale, utilisez le –remove-source-files
comme indiqué.
$ rsync --remove-source-files -zvh backup.tar /tmp/mybackups/
Exemple de sortie
Nous espérons que cet article vous a été bénéfique. Si vous avez des questions, n'hésitez pas à nous faire part de vos commentaires.