GNU/Linux >> Linux Esercitazione >  >> Linux

Usa scp per copiare un file su server diversi

Esistono vari strumenti che possono eseguire lo scp di file su più host (con connessioni simultanee), come pssh e kanif. In termini di password, suggerirei di utilizzare l'inoltro dell'agente. Ciò consente di mantenere la chiave sul computer locale, ma di utilizzarla quando si avviano connessioni SSH da un altro host. Altrimenti, --askpass opzione al parallel-scp comando da pssh richiede una password da utilizzare per ogni host.

Se non puoi installare uno strumento per farlo, imposta l'inoltro dell'agente (aggiungendo -A opzione a ssh quando ti connetti alla macchina su cui lo stai facendo) e poi esegui scp in un ciclo in questo modo:

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

Prova a farlo con uno script di attesa, ad es.

#!/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

Quanto sopra dovrebbe essere abbastanza semplice per adattarsi alle tue esigenze.


Linux
  1. Come utilizzare il tunneling SSH per accedere a server con restrizioni

  2. Come copiare un file da un server remoto su una macchina locale?

  3. Come copiare file da una macchina Vagrant a localhost

  4. Come copiare un file senza usare scp all'interno di una sessione ssh?

  5. Come copiare un file in modo transazionale?

Comando Cp in Linux (copia file)

File host Linux:come modificarlo e utilizzarlo?

Come utilizzare il comando SCP su Linux

Usa il file di configurazione SSH per gestire le connessioni SSH a vari server remoti

Come utilizzare Rsync per copiare/sincronizzare file tra server

Come usare gzip in Linux?