Usa tar
:
tar cvzf - -T list_of_filenames | ssh hostname tar xzf -
Me gustaría usar scp para eso, pero scp solo permite transferir un archivo a la vez.
Estoy bastante seguro de que eso no es cierto, al menos no para el scp
Comando proporcionado por OpenSSH incluido con la mayoría de las distribuciones de Linux.
Yo uso scp file1 file2 ... fileN [email protected]:/destination/directory/
con bastante frecuencia.
Para una compresión transparente, el protocolo SSH tiene esto incorporado y scp
puede usarlo si proporciona el -C
opción en la línea de comando. Para muchos archivos pequeños similares, encontrará que la opción tar+gz sugerida por akira obtiene una mejor compresión, ya que puede hacer uso de la similitud entre dichos archivos donde scp
comprime cada archivo como una entidad separada. Sin embargo, generalmente prefiero usar scp, ya que es más fácil reanudar una transferencia parcial (o, aunque sé que en esta situación, el interrogador no tiene la opción) rsync
ya que es aún más fácil de reanudar y comparte la ventaja de compresión de flujo completo de la opción tar+gz.
No scp -r yourdir otherhost:/otherdir
trabajo?
Prueba esto entonces:
tar cfz - . | ssh otherhost "cd /mydir; tar xvzf -"
el z
-flag to tar hace compresión. O puede usar -C para ssh:
tar cf - . | ssh -C otherhost "cd /mydir; tar xvf -"