GNU/Linux >> Znalost Linux >  >> Linux

Jak kopírovat více souborů současně pomocí scp

Ú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


Linux
  1. Jak komprimovat více souborů v systému Linux

  2. Jak třídit soubory podle jejich oprávnění pomocí Ls?

  3. Jak přejmenovat více souborů pomocí funkce Najít?

  1. Jak bezpečně přenášet soubory pomocí SCP

  2. Jak přejmenovat více souborů dohromady v Linuxu pomocí 3 metod

  3. Jak bezpečně přenášet soubory pomocí příkazu SCP v systému Linux

  1. Jak přenášet soubory mezi servery v Linuxu pomocí SCP a FTP

  2. Jak rekurzivně kopírovat adresáře pomocí rsync při vyloučení konkrétních souborů

  3. Jak zkopírovat soubor do více adresářů pomocí příkazu gnu cp