GNU/Linux >> Tutoriels Linux >  >> Linux

Comment transférer des fichiers avec Rsync sur SSH

Lorsqu'il s'agit de transférer des fichiers entre systèmes sur le réseau, les utilisateurs Linux et Unix disposent de nombreux outils.

Les protocoles les plus populaires pour le transfert de données sont SSH et FTP. Bien que FTP soit très populaire, préférez toujours utiliser SSH car c'est le moyen le plus sûr de transférer vos fichiers.

Il existe des outils spécialisés pour le transfert de fichiers via SSH tels que scp et sftp mais aucun d'entre eux n'a toutes les fonctionnalités que rsync fournit. rsync peut être utilisé pour mettre en miroir des données, des sauvegardes incrémentielles, copier des fichiers entre des systèmes, etc.

Dans ce tutoriel, nous allons vous expliquer comment copier des fichiers avec rsync sur SSH.

Exigences #

  • Le rsync L'utilitaire doit être installé à la fois sur les systèmes de destination et source. S'il n'est pas installé, vous pouvez l'installer à l'aide du gestionnaire de packages de votre distribution :

    Ubuntu et Debian :

    sudo apt install rsync

    CentOS et Fedora :

    sudo yum install rsync
  • Accès SSH à l'ordinateur distant.

  • L'utilisateur exécutant le rsync commande et l'utilisateur SSH distant doivent disposer des autorisations appropriées pour lire et écrire des fichiers.

Utilisation de rsync pour transférer des fichiers via SSH #

Avec rsync , vous pouvez transférer des fichiers et des répertoires via SSH depuis et vers des serveurs distants.

La syntaxe générale pour transférer des fichiers avec rsync est le suivant :

Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]

SRC est le répertoire source, DEST est le répertoire de destination USER est le nom d'utilisateur SSH distant et HOST est l'hôte SSH distant ou l'adresse IP.

Les nouvelles versions de rsync sont configurées pour utiliser SSH comme shell distant par défaut afin que vous puissiez omettre le -e ssh option.

Par exemple, pour transférer un seul fichier /opt/file.zip du système local vers /var/www/ répertoire sur le système distant avec IP 12.12.12.12 vous exécuteriez :

rsync -a /opt/file.zip [email protected]:/var/www/

Le -a L'option représente le mode d'archivage qui synchronise les répertoires de manière récursive, transfère les périphériques spéciaux et bloque, conserve les liens symboliques, les heures de modification, le groupe, la propriété et les autorisations.

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 le fichier existe sur le serveur distant, il sera écrasé. Si vous souhaitez enregistrer le fichier sous un autre nom, indiquez le nouveau nom :

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Pour transférer des données d'une machine distante vers une machine locale, utilisez l'emplacement distant comme source et l'emplacement local comme destination :

rsync -a [email protected]:/var/www/file.zip /opt/

Transférer des répertoires avec rsync via SSH équivaut à transférer des fichiers.

Il est important de savoir que rsync donne un traitement différent aux répertoires source avec une barre oblique / . Lorsque le répertoire source a une barre oblique finale, rsync copiera uniquement le contenu du répertoire source dans le répertoire de destination. Lorsque la barre oblique finale est omise, le répertoire source sera copié dans le répertoire de destination.

Par exemple pour transférer le /opt/website/images/ local répertoire vers le /var/www/images/ répertoire sur une machine distante, vous taperiez :

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Utilisez le --delete option si vous souhaitez synchroniser le répertoire local et distant. Soyez prudent lorsque vous utilisez cette option car elle supprimera les fichiers du répertoire de destination s'ils n'existent pas dans le répertoire source.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Si SSH sur l'hôte distant écoute sur un port autre que le 22 par défaut , spécifiez le port en utilisant le -e option. Par exemple, si SSH écoute sur le port 3322 vous utiliseriez :

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Lors du transfert de grandes quantités de données, il est recommandé d'exécuter le rsync commande à l'intérieur d'une session d'écran ou utilisez le -P option qui indique rsync pour afficher une barre de progression pendant le transfert et conserver les fichiers partiellement transférés :

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Conclusion #

Nous vous avons montré comment utiliser rsync sur SSH pour copier et synchroniser des fichiers et des répertoires.

Vous pouvez également lire comment exclure des fichiers ou des répertoires avec rsync .

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


Linux
  1. Comment télécharger et charger des fichiers via SSH

  2. Sauvegardez vos fichiers avec rsync

  3. Comment transférer des fichiers sous Linux avec SCP et Rsync

  4. Comment configurer Rsync sans mot de passe avec SSH sous UNIX / Linux ?

  5. Comment puis-je exclure des fichiers par défaut avec rsync ?

Comment utiliser la commande rsync pour copier des données localement et via SSH

Comment transférer facilement des fichiers entre des bureaux Linux avec Warp

Comment transférer des fichiers avec Commander One

Comment configurer une sauvegarde avec rsync sur Ubuntu 18.04

Comment utiliser SSHFS Mount avec des répertoires distants via SSH

Comment copier à distance des fichiers via SSH sans entrer de mot de passe