Existe-t-il une raison d'utiliser scp au lieu de rsync?


62

Y a-t-il une raison d'utiliser scpau lieu de rsync? Je ne vois aucune raison d'utiliser scpà nouveau, rsyncfait tout ce qui scpfait, avec plus de sécurité (peut conserver des liens symboliques, etc.).


6
Réponse courte: Non. Scp n'est jamais nocif.
Shadur

2
@Shadur scp est nuisible en ce qu'il écrase par défaut les fichiers cibles existants. C'est donc rsync, mais cela permet au moins de limiter les dégâts possibles avec -u.
Gilles 'SO- arrête d'être méchant'

3
@Gilles Comme pour tout outil, vous devez comprendre ce qu'il fait et comment il le fait pour l'utiliser en toute sécurité.
Alex Chamberlain

8
Dans ce contexte, régulier cpet rmconsidéré comme "nuisible" - et si vous définissez le terme "nocif" comme "peut me faire foutre si je fais quelque chose de stupide", rsyncn'en est pas moins nuisible.
Shadur

1
Sur des systèmes sans rsyncinstallation, l’utilisation rsyncn’est (évidemment) même pas possible.
Kusalananda

Réponses:


46

scp fournit une méthode semblable à cp pour copier des fichiers d'un ordinateur à un ordinateur distant via une connexion SSH sécurisée.

rsync vous permet de synchroniser des dossiers distants.

Ce sont des programmes différents et les deux ont leurs utilisations. scp est toujours sécurisé, alors que rsync doit voyager sur SSH pour être sécurisé.


9
En outre, rsync doit être installé à l’autre extrémité.
ckhan

3
@ckhan, non, il peut copier sans rien installer de l’autre côté, ça sera juste moins efficace.
mikebloch

2
J'aime la simplicité de SCP.
Alex Chamberlain

2
@mikebloch Comment faites-vous cela? Est-ce une nouvelle fonctionnalité? Je viens d'essayer cela en utilisant la version 3.0.9. et il s'est plaint qu'il n'a pas pu trouver rsyncsur la télécommande.
Alexios

1
@mikebloch, il doit être installé sur le serveur pour effectuer les calculs de somme de contrôle, ce qui peut ajouter beaucoup de charge de calcul au processeur. C'est pourquoi la plupart des grands sites ne le prennent pas en charge et a zsyncété créé comme alternative.
Psusi

19

L'un des principaux problèmes (que personne ne mentionne, à mon avis) est que si vous transférez de grandes quantités de données ou de fichiers, et si le transfert est déconnecté avant la fin, pour quelque raison que ce soit, rsync le récupérera là où il s'était arrêté. Considérant que SCP ne.

J'utilise scp si je souhaite transférer un ou plusieurs fichiers ou répertoires. Je vais à rsync pour les données de taille multi Go.


3
Cela vaut la peine d’ajouter que le --partialdrapeau est utile lors du transfert de gros fichiers. rsyncreprendra là où il s'est arrêté dans le fichier plutôt que de le redémarrer.
Flup

Comme @Flup l'a mentionné, rsync ne laissera aucun fichier en transit entre vous pour que vous puissiez le reprendre, sauf si vous utilisez l'option --partial. Ces fichiers sont cachés par défaut dans le répertoire cible. Vous pouvez utiliser --partial-dir pour mettre tous ces fichiers dans un seul répertoire.
Lester Cheung

Eh bien, on rsync -vP username@host:/path/to/file .va faire ça aussi. Voir cette réponse sur Stackoverflow
Devesh Saini

9

rsync : Transfère les deltas (à l'aide de son algorithme de transfert delta ) entre:

  1. hôtes locaux et distants

scp : Transfère des fichiers entiers entre:

  1. hôtes locaux et distants
  2. hôtes distants et distants

Résumé: scppeut transférer des fichiers entre deux hôtes distants rsyncsans le prendre en charge.


rsync peut transférer des fichiers entre deux hôtes distants. En fait, rsync a host:best équivalent à scp a host:b.
brandizzi

C'est ce que j'ai écrit: rsync peut transférer des deltas entre des hôtes locaux et distants, mais scp n'est pas limité à cela. Il peut également transférer des deltas entre deux hôtes distants. @brandizzi
Devesh Saini

2

Chris, utilisateur de Webhosting Talk, écrit:

rsynccompare les fichiers à chaque extrémité et transfère uniquement les parties modifiées des fichiers modifiés. Lorsque vous transférez des fichiers pour la première fois, il se comporte plutôt bien scp, mais pour un second transfert, dans lequel la plupart des fichiers sont inchangés, le volume de données transféré est bien inférieur à celui de scp. C'est aussi un moyen pratique de redémarrer les transferts en échec - vous ré-émettez simplement la même commande et elle reprendra où elle avait été laissée auparavant, alors scpqu'elle recommencera à zéro.


0

scpest plus simple à utiliser car cela prend moins d'arguments. J'attrape moi-même en utilisant scp au lieu de rsyncsi je ne transfère qu'un seul fichier. Je suis juste trop paresseux pour définir un alias pour rsync ... ;-)


1
Hmmm, pourquoi est-ce le cas? rsync a host:best équivalent à scp a host:b, même nombre d'arguments.
mikebloch

1
@mikebloch Deux lettres plus à taper ... ;-) Dans le passé, je devais fournir "-e ssh -a" pour obtenir le résultat correct. Maintenant que "-e ssh" est la valeur par défaut, cela pourrait être un jeu différent.
Nils

0

Crédits à @tomrunia à l' adresse https://gist.github.com/KartikTalwar/4393116

rsync -aHAXxv --numeric-ids --delete --progress \
  -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no -x" \
  [source_directory] user@hostname:[target_directory]/

Faites attention à --delete, ne l'utilisez pas si vous voulez conserver des fichiers superflus dans des répertoires de destination

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.