GNU/Linux >> Znalost Linux >  >> Linux

Pomocí scp zkopírujte soubor na různé servery

Existují různé nástroje, které mohou soubory scp na více hostitelů (se současným připojením), jako jsou pssh a kanif. Pokud jde o hesla, doporučil bych používat přesměrování agentů. To vám umožní ponechat klíč na místním počítači, ale použít jej při inicializaci připojení SSH z jiného hostitele. Jinak --askpass možnost parallel-scp příkaz z pssh vyzve k zadání hesla pro každého hostitele.

Pokud k tomu nemůžete nainstalovat nástroj, nastavte přesměrování agenta (přidáním -A možnost ssh při připojení k počítači, na kterém to děláte) a poté spusťte scp ve smyčce takto:

for HOST in server1 server2 server3; do
    scp somefile $HOST:~/somedir/
done

Zkuste to udělat pomocí očekávaného skriptu, např.

#!/bin/bash

HOSTS="h1.lan h2.lan h3.lan"

read -p "Password: " PASSWORD


for HOST in $HOSTS
do
    expect -c "
    spawn /usr/bin/scp file [email protected]$HOST:/destination_path/
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

Výše uvedené by mělo být poměrně jednoduché, aby se přizpůsobilo vašim požadavkům.


Linux
  1. Jak zkopírovat soubor ze vzdáleného serveru do místního počítače?

  2. Použijte Scp k přenosu souboru z místního adresáře X do vzdáleného adresáře Y?

  3. Použít _roff k podtržení slov?

  1. Používejte značky cloudových serverů

  2. Jak zkopírovat soubor bez použití scp v relaci ssh?

  3. Jak transakčně zkopírovat soubor?

  1. Jak používat tunelování SSH pro přístup k omezeným serverům

  2. Použijte CloudFlare s Rackspace

  3. Je možné použít / v názvu souboru?