Soluzione 1:
io farei così:
tar -cf - /manyfiles | ssh dest.server 'tar -xf - -C /manyfiles'
A seconda dei file che stai trasferendo può avere senso abilitare la compressione in tar
comandi:
tar -czf - /manyfiles | ssh dest.server 'tar -xzf - -C /manyfiles'
Potrebbe anche avere senso scegliere un cifrario più compatibile con la CPU per ssh
comando (come arcfour):tar -cf - /manyfiles | ssh -c arcfour dest.server 'tar -xf - -C /manyfiles'
Oppure combinali entrambi, ma dipende davvero da qual è il tuo collo di bottiglia.
Ovviamente rsync
sarà molto più veloce se esegui sincronizzazioni incrementali.
Soluzione 2:
Usa rsync
invece di scp
. Puoi usare rsync
oltre ssh
facilmente come scp
e supporta il "pipelining dei trasferimenti di file per ridurre al minimo i costi di latenza".
Un consiglio:se i dati sono comprimibili, abilita la compressione. Se non lo è, disabilitalo.