¿Cómo comprimir un directorio, transferirlo mediante scp y descomprimirlo con un solo comando?

¿Cómo comprimir un directorio, transferirlo mediante scp y descomprimirlo con un solo comando?

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

¿Es posible algo como esto?

Respuesta1

¿Qué tal si lo usamos rsynccon 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á.

Respuesta2

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

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

Desafortunadamente, esto no muestra progreso a medida que se transfiere. He notado increíbles mejoras en la velocidad usando este método.

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

Respuesta3

Bueno, yo 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 en mi opinión, tar es más robusto para Linux.

información relacionada