¿Cómo comprimir un directorio, transferir mediante scp y descomprimir en un comando?


11

Con frecuencia transfiero directorios grandes scpy sería bueno si de alguna manera pudiera comprimir el directorio, enviarlo y descomprimirlo todo en uno.

¿Es posible algo así?

Respuestas:


29

¿Qué tal usar en su rsynclugar con la -zopción habilitada para compresión?

rsync -az --progress source_dir/* remote_host:/destination_dir

Esto también tiene el beneficio adicional de que si el archivo ya existe y no ha cambiado en el destino, no se transferirá.


7

Gracias a la respuesta de @ johnshen64, pude llegar a algo bastante bueno

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

Desafortunadamente, esto no muestra progreso mientras se transfiere. He notado increíbles mejoras de velocidad usando este método.

Si alguien sabe cómo mostrar el progreso de una transferencia como esta, agradecería mucho la ayuda :)


1
Insertar pventre alquitrán y ssh .
user1686

Esto es genial si no tienes rsync disponible
Simon Hartcher

2

bueno, usaría tar en su lugar

tar cf - directorio | servidor ssh 'tar xf -'

puedes agregar v para verificar.

zip debería ser el mismo, pero tar es más robusto para linux en mi opinión.


+1 gracias por tu ayuda; Esto me llevó a la mitad del camino. Pude encontrar una solución que no usa el -carácter críptico , también usa la compresión gzip y permite apuntar a un directorio de destino.
macek

@macek: tenga en cuenta que f -podría ser necesario en otros sistemas operativos, ya que la mayoría de las versiones tar intentarán leer desde una unidad de cinta de lo contrario. La lectura de stdin por defecto es específica de GNU.
user1686
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.