Úlohu na pozadí můžete použít s příkazem wait. Příkaz Wait zajišťuje dokončení všech úloh na pozadí před zpracováním dalšího řádku. tj. echo bude provedeno po dokončení scp pro všechny tři uzly.
#!/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 umí takzvaný "multiplexing" - více připojení přes jeden (na jeden server). Může to být jeden způsob, jak si dovolit, co chcete. Vyhledejte klíčová slova jako "ControlMaster"
Druhým způsobem je použití více připojení a odeslání každé úlohy na pozadí:
for file in file1 file2 file3 ; do
scp $file server:/tmp/ &
done
Ale to je odpověď na vaši otázku - "Jak kopírovat více souborů současně". Pro zrychlení můžete použít slabší šifrování (rc4 atd.) a také nezapomeňte, že úzkým hrdlem může být váš pevný disk – protože SCP implicitně neomezuje přenosovou rychlost.
Poslední věcí je použití rsync - v některých případech může být mnohem rychlejší než scp...
Nejsem si jistý, zda vám to pomůže, ale obecně archivuji (není nutná komprese, stačí pouze archivace) soubor u zdroje, stahuji jej, rozbaluji. Tím se proces výrazně urychlí. Před archivací trvalo> 8 hodin stažení 1 GBPo archivaci trvalo totéž <8 minut