Transferir archivos a través de SSH

9

Quiero usar la transferencia de archivos a través de SSH en algunos scripts. He leído que es posible tar sobre ssh. ¿Dónde debería comenzar a leer?

Fernando Briano
fuente
¿Por qué traes alquitrán?
Zoredache
1
tar es la forma más rápida de copiar archivos a través de SSH. scp y rsync tienen una gran sobrecarga de protocolo al copiar muchos archivos pequeños.
Justin
@Justin, por supuesto, la suposición con tar es que tendrás una conexión confiable. Si el rendimiento en bruto no importa, generalmente es mejor seguir con las soluciones más comunes y simples como scp / rsync.
Zoredache
1
eh? tar sobre ssh no es peor que scp o rsync. El único aspecto en el que rsync es mejor es que le permite reanudar. Si la conexión no es confiable, probablemente valga la pena probar primero tar sobre ssh y luego finalizar la transferencia con rsync.
Justin
@Justin, eso sería un guión bastante complejo. Quizás deberíamos comenzar con algo un poco más básico.
John Gardeniers

Respuestas:

23

Para transferir archivos a través de ssh puedes

  • usar scp
    • scp -r /srcdir/ user@remotehost:/destdir/
  • use rsync sobre ssh (vea el parámetro -e)
    • rsync -e ssh -a /srcdir/ user@remotehost:/destdir/
  • use alguna herramienta que transfiera datos a través de stdin / out ( tar , cpio , etc.)
    • cd /sourcedir; tar -c . | ssh username@remotehost bash 'cd /dstdir; tar -x
  • Monte el sistema de archivos a través de sshfs (si su sistema admite fusibles)
Zoredache
fuente
Regularmente uso los tres; cuál uso depende de las circunstancias.
reinierpost
3

O'Reilly tiene un libro con todo: SSH, The Secure Shell: The Definitive Guide, si lo busca en Google, hay muchas referencias, lugares para comprarlo y verlo en línea.

Kevin K
fuente
Me encanta cuando te votan negativamente y no hay comentarios que te permitan saber por qué. Preguntó dónde comenzar a leer, y esto está disponible en línea y en una librería. Es una gran referencia para ssh.
Kevin K
Creo que esto también está mal. ¿Por qué lo rechazaron (dos veces) dado que realmente respondió la pregunta y la respuesta aceptada (votada 15 veces hasta ahora) es una forma genérica de copiar archivos a través de ssh sin referencia a dónde comenzar a leer? Te voy a votar, solo para tratar de remediar la situación. No dejes que te depriman, hombre.
Richard Holloway
0

Para tar sobre ssh, puede usar el hecho de que ssh reenvía stdin y stdout. Entonces puedes hacer

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

y tener la copia de seguridad en la máquina local.

Dan Andreatta
fuente