Android

Comment utiliser rsync pour le transfert et la synchronisation de données locales et distantes

Tuto [Fr] Sauvegarde Rsync entre 2 Synology - par Processus

Tuto [Fr] Sauvegarde Rsync entre 2 Synology - par Processus

Table des matières:

Anonim

Rsync est un utilitaire de ligne de commande rapide et polyvalent qui synchronise les fichiers et les dossiers entre deux emplacements sur un shell distant ou depuis / vers un démon Rsync distant. Il permet un transfert de fichiers incrémentiel rapide en transférant uniquement les différences entre la source et la destination.

Rsync peut être utilisé pour la mise en miroir des données, les sauvegardes incrémentielles, la copie de fichiers entre les systèmes et en remplacement des commandes scp , sftp et cp pour une utilisation quotidienne.

Dans ce didacticiel, nous vous montrerons comment utiliser rsync travers des exemples pratiques et des explications détaillées des options rsync les plus courantes.

Installation de Rsync

L'utilitaire rsync est préinstallé sur la plupart des distributions Linux et macOS. Vous pouvez vérifier s'il est installé sur votre système en tapant:

rsync --version

rsync version 3.1.2 protocol version 31

Installer Rsync sur Ubuntu et Debian

sudo apt install rsync

Installez Rsync sur CentOS et Fedora

sudo yum install rsync

Syntaxe de la commande Rsync

Avant d'entrer dans la façon d'utiliser la commande rsync , commençons par revoir la syntaxe de base.

Les expressions de l'utilitaire rsync prennent la forme suivante:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - Les options rsync. SRC - Répertoire source. DEST - Répertoire de destination. USER - Nom d'utilisateur distant. HOST - Nom d'hôte distant ou adresse IP.

rsync fournit un certain nombre d'options qui contrôlent chaque aspect de son comportement. Les options les plus utilisées sont:

  • -a , --archive , mode archive, équivalent à -rlptgoD . Cette option indique à rsync de synchroniser les répertoires de manière récursive, de transférer des périphériques spéciaux et de bloc, de conserver les liens symboliques, les heures de modification, le groupe, la propriété et les autorisations. -z , --compress . Cette option forcera rsync à compresser les données lors de leur envoi vers la machine de destination. Utilisez cette option uniquement si la connexion à la machine distante est lente. -P , équivalent à --partial --progress . Lorsque cette option est utilisée, rsync affichera une barre de progression pendant le transfert et pour conserver les fichiers partiellement transférés. Il est utile lors du transfert de fichiers volumineux sur des connexions réseau lentes ou instables. --delete . Lorsque vous utilisez cette option, rsync supprimera les fichiers superflus de l'emplacement de destination. Il est utile pour la mise en miroir. -q , --quiet . Utilisez cette option si vous souhaitez supprimer les messages non d'erreur. -e . Cette option vous permet de choisir un autre shell distant. Par défaut, rsync est configuré pour utiliser ssh.

Utilisation de base de Rsync

Pour copier un seul fichier de l'un vers un autre emplacement local, vous devez exécuter la commande suivante:

rsync -a /opt/filename.zip /tmp/

L'utilisateur exécutant la commande doit avoir des autorisations de lecture sur l'emplacement de destination et des autorisations d'écriture sur la destination.

L'omission du nom de fichier de l'emplacement de destination copie le fichier avec le nom actuel. Si vous souhaitez enregistrer le fichier sous un nom différent, spécifiez le nouveau nom sur la partie de destination:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Dans l'exemple ci-dessous, nous créons une sauvegarde locale de nos fichiers de site Web:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Si le répertoire de destination n'existe pas, rsync le créera.

Il convient de mentionner que rsync donne un traitement différent aux répertoires source avec une barre oblique / . Si vous ajoutez une barre oblique de fin sur le répertoire source, elle ne copiera que le contenu du répertoire dans le répertoire de destination. Lorsque la barre oblique de fin est omise, rsync copiera le répertoire source dans le répertoire de destination.

Comment utiliser Rsync pour synchroniser des données depuis / vers une machine distante

Lorsque vous utilisez rsync pour le transfert à distance, il doit être installé à la fois sur la machine source et sur la machine de destination. Les nouvelles versions de rsync sont configurées pour utiliser SSH comme shell distant par défaut.

Dans l'exemple suivant, nous transférons un répertoire d'un ordinateur local vers un ordinateur distant:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Si vous n'avez pas défini de connexion SSH sans mot de passe sur la machine distante, vous serez invité à saisir le mot de passe utilisateur.

Si vous souhaitez transférer des données d'une télécommande vers une machine locale, vous devez utiliser l'emplacement distant comme source:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Si SSH sur l'hôte distant écoute sur un port autre que le port par défaut 22, vous pouvez spécifier le port à l'aide de l'option -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Lors du transfert de grandes quantités de données, il est recommandé d'exécuter la commande rsync dans une session d'écran ou d'utiliser l'option -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Exclure des fichiers et des répertoires

Lorsque vous excluez des fichiers ou des répertoires, vous devez utiliser leurs chemins d'accès relatifs à l'emplacement source.

Il existe deux options pour exclure des fichiers et des répertoires. La première option consiste à utiliser l'argument --exclude et à spécifier les fichiers et répertoires que vous souhaitez exclure sur la ligne de commande.

Dans l'exemple suivant, nous node_modules les node_modules et tmp qui se trouvent dans le src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

La deuxième option consiste à utiliser l'argument --exclude-from et à spécifier les fichiers et répertoires que vous souhaitez exclure dans un fichier.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Conclusion

Dans ce didacticiel, vous avez appris à utiliser Rsync pour copier et synchroniser des fichiers et des répertoires. Il y a beaucoup plus à apprendre sur Rsync sur la page du manuel de l'utilisateur de Rsync.

N'hésitez pas à laisser un commentaire si vous avez des questions.

terminal rsync