Transférer des fichiers via SSH

9

Je souhaite utiliser le transfert de fichiers via SSH sur certains scripts. J'ai lu qu'il était possible de tarer sur ssh. Où dois-je commencer à lire?

Fernando Briano
la source
Pourquoi tu portes du goudron?
Zoredache
1
tar est le moyen le plus rapide de copier des fichiers via SSH. scp et rsync ont beaucoup de surcharge de protocole lors de la copie de nombreux petits fichiers.
Justin
@Justin, bien sûr, l'hypothèse avec tar est que vous aurez une connexion fiable. Si les performances brutes n'ont pas d'importance, il est généralement préférable de s'en tenir aux solutions les plus courantes et les plus simples comme scp / rsync.
Zoredache
1
hein? tar sur ssh n'est pas pire que scp ou rsync. Le seul aspect dans lequel rsync est meilleur est qu'il vous permet de reprendre. Si la connexion n'est pas fiable, cela vaut probablement la peine d'essayer d'abord tar sur ssh, puis de terminer le transfert avec rsync.
Justin
@Justin, cela ferait un script assez complexe. Peut-être devrions-nous commencer par quelque chose d'un peu plus basique.
John Gardeniers

Réponses:

23

Pour effectuer le transfert de fichiers via ssh, vous pouvez

  • utiliser scp
    • scp -r /srcdir/ user@remotehost:/destdir/
  • utilisez rsync sur ssh (voir le paramètre -e)
    • rsync -e ssh -a /srcdir/ user@remotehost:/destdir/
  • utiliser un outil qui transfère les données via stdin / out ( tar , cpio , etc.)
    • cd /sourcedir; tar -c . | ssh username@remotehost bash 'cd /dstdir; tar -x
  • Montez le système de fichiers via sshfs (si le fusible est pris en charge sur votre système)
Zoredache
la source
J'utilise régulièrement les trois; lequel j'utilise dépend des circonstances.
reinierpost
3

O'Reilly a un livre avec tout cela - SSH, The Secure Shell: The Definitive Guide - si vous le recherchez sur Google, il existe de nombreuses références, des endroits pour l'acheter et le consulter en ligne.

Kevin K
la source
Je dois l'aimer quand vous obtenez des votes négatifs et aucun commentaire pour vous faire savoir pourquoi. Il a demandé par où commencer la lecture - et cela est disponible en ligne et dans une librairie. C'est une grande référence pour ssh.
Kevin K
Je pense que c'est faux aussi. Pourquoi avez-vous été rejeté (deux fois) étant donné que vous avez répondu à la question et que la réponse acceptée (votée 15 fois jusqu'à présent) est un moyen générique de copier des fichiers sur ssh sans référence à l'endroit où commencer la lecture. Je vais vous voter, juste pour essayer de remédier à la situation. Ne les laissez pas vous abattre mec.
Richard Holloway
0

Pour tar sur ssh, vous pouvez utiliser le fait que ssh transmet stdin et stdout. Vous pouvez donc faire

ssh server 'tar czf - /some/dir/' > tarfile.tar.gz

et avoir la sauvegarde sur la machine locale.

Dan Andreatta
la source