È possibile utilizzare l'attività in background con il comando wait. Il comando Wait assicura che tutte le attività in background siano completate prima dell'elaborazione della riga successiva. cioè echo verrà eseguito dopo il completamento di scp per tutti e tre i nodi.
#!/bin/bash
scp -i anuruddha.pem myfile1.tar [email protected]:/tmp &
scp -i anuruddha.pem myfile2.tar [email protected]:/tmp &
scp -i anuruddha.pem myfile.tar [email protected]:/tmp &
wait
echo "SCP completed"
SSH è in grado di eseguire il cosiddetto "multiplexing" - più connessioni su una (a un server). Può essere un modo per permettersi quello che vuoi. Cerca parole chiave come "ControlMaster"
Il secondo modo è utilizzare più connessioni, quindi inviare ogni lavoro in background:
for file in file1 file2 file3 ; do
scp $file server:/tmp/ &
done
Ma questa è la risposta alla tua domanda:"Come copiare più file contemporaneamente". Per accelerare, puoi utilizzare una crittografia più debole (rc4 ecc.) e inoltre non dimenticare che il collo di bottiglia può essere il tuo disco rigido, perché SCP non limita implicitamente la velocità di trasferimento.
L'ultima cosa è usare rsync:in alcuni casi può essere molto più veloce di scp...
Non sono sicuro che questo ti aiuti, ma generalmente archivio (la compressione non è richiesta. solo l'archiviazione è sufficiente) file alla fonte, lo scarico, li estraggo. Ciò accelererà notevolmente il processo. Prima dell'archiviazione, sono state necessarie> 8 ore per scaricare 1 GB. Dopo l'archiviazione, sono state necessarie <8 minuti per eseguire la stessa operazione