Android

Comment transférer des fichiers avec rsync sur ssh

Tuto SSH, Partie 2: La connexion et scp pour copier des fichiers

Tuto SSH, Partie 2: La connexion et scp pour copier des fichiers

Table des matières:

Anonim

En ce qui concerne le transfert de fichiers entre les systèmes du réseau, les utilisateurs de Linux et Unix ont beaucoup d'outils à leur disposition.

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 sur SSH tels que scp et sftp mais aucun d'entre eux n'a toutes les fonctionnalités fournies par rsync . rsync peut être utilisé pour la mise en miroir des données, les sauvegardes incrémentielles, la copie de fichiers entre les systèmes, etc.

Dans ce tutoriel, nous expliquerons comment copier des fichiers avec rsync sur SSH.

Exigences

  • L'utilitaire rsync doit être installé 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 la commande rsync 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 du transfert de fichiers avec rsync est la suivante:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

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, vous pouvez donc omettre l'option -e ssh .

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

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

L'option -a signifie le mode archive qui synchronise les répertoires de manière récursive, transfère les périphériques spéciaux et bloqués, préserve les liens symboliques, les heures de modification, le groupe, la propriété et les autorisations.

Si le fichier existe sur le serveur distant, il sera écrasé. Si vous souhaitez enregistrer le fichier sous un nom différent, spécifiez le nouveau nom:

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

Pour transférer des données d'une télécommande 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/

Le transfert de répertoires avec rsync sur SSH est identique au transfert de fichiers.

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

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

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

Utilisez l'option --delete 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 port par défaut 22 , spécifiez le port à l'aide de l'option -e . 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 la commande rsync dans une session d'écran ou d'utiliser l'option -P qui indique à rsync d'afficher une barre de progression pendant le transfert et de 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.

terminal rsync