arquivos Scp para vários servidores simultaneamente [duplicado]

0

Eu tenho um arquivo chamado server.txt

Suponha que tenha servidores abaixo, poderia haver mais servidores servidor1 server2 server3 server4

como posso copiar o arquivo (file.txt em todos os servidores usando o comando scp) em / tmp / location.

    
por Manish 02.12.2016 / 03:31

1 resposta

5

Assumindo bash :

for server in $(cat server.txt)
do
  scp file.txt "$server":/tmp/
done

Modo paralelo (não use isso se server.txt for enorme, pois você pode ficar sem largura de banda, interromper as conexões e, em seguida, ter dificuldade em descobrir o que foi bem-sucedido e o que falhou):

for server in $(cat server.txt)
do
  scp file.txt "$server":/tmp/ &
done
wait

Conforme solicitado, agora com suporte a senha:

while read SERVER PASSWORD
do
  sshpass -p "$PASSWORD" scp file.txt "$SERVER":/tmp/
done <./server.txt

Coloque, em server.txt , o nome do host do primeiro servidor, espaço, a senha do primeiro servidor na primeira linha e assim por diante.

    
por 02.12.2016 / 03:35