Sie können die Hintergrundaufgabe mit dem Wartebefehl verwenden. Der Wartebefehl stellt sicher, dass alle Hintergrundaufgaben abgeschlossen sind, bevor die nächste Zeile verarbeitet wird. d.h. echo wird ausgeführt, nachdem scp für alle drei Knoten abgeschlossen ist.
#!/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 ist in der Lage, sogenanntes "Multiplexing" durchzuführen - mehr Verbindungen über einen (zu einem Server). Es kann eine Möglichkeit sein, sich das zu leisten, was Sie wollen. Suchen Sie nach Schlüsselwörtern wie "ControlMaster"
Der zweite Weg besteht darin, mehr Verbindungen zu verwenden und dann jeden Job im Hintergrund zu senden:
for file in file1 file2 file3 ; do
scp $file server:/tmp/ &
done
Dies ist jedoch die Antwort auf Ihre Frage - "Wie kopiere ich mehrere Dateien gleichzeitig". Zur Beschleunigung können Sie eine schwächere Verschlüsselung verwenden (rc4 usw.) und vergessen Sie auch nicht, dass der Engpass Ihre Festplatte sein kann - da SCP die Übertragungsgeschwindigkeit nicht implizit begrenzt.
Das Letzte ist die Verwendung von rsync - in einigen Fällen kann es viel schneller sein als scp ...
Ich bin mir nicht sicher, ob Ihnen das hilft, aber ich archiviere im Allgemeinen Dateien an der Quelle (Komprimierung ist nicht erforderlich, nur Archivierung ist ausreichend), lade sie herunter und entpacke sie. Dadurch wird der Vorgang erheblich beschleunigt. Vor der Archivierung dauerte es> 8 Stunden, um 1 GB herunterzuladen. Nach der Archivierung dauerte es <8 Minuten, um dasselbe herunterzuladen