ssh servidor múltiplo para operação tar [duplicado]

0

Eu tenho um arquivo contendo o endereço IP de 10 servidores. por exemplo, host.txt

Eu quero tar um diretório e 10 servidores diferentes de 1 servidor.

Como posso executar ssh paralelamente a esse servidor, o que pode reduzir meu tempo de exoneração

Eu tentei abaixo do código, mas sem sorte.

cat host.txt |
 while read i
 do 
    ssh -qn $i 'tar -cvf /tmp/TC.tar.gz /etc' &
 done

Expectativa:

Deseja paralelizar o SSH com o 10server, para que o comando tar seja executado paralelamente no servidor sem usar o PSSH.

    
por Akki 06.09.2017 / 13:49

1 resposta

1

Use clusterssh: link

Para executar comandos em paralelo, você usa como

cssh user@client1 user@client2

Você obtém uma janela de terminal para cada cliente e uma janela de comando para digitar comandos em qualquer terminal em paralelo.

Existem muitas opções para configurar dentro do diretório ~ / .clusterssh, então é fácil agrupar seus clientes por tags.

Para agrupar clientes de seu host.txt , o arquivo ~/.clusterssh/tags pode ter esta aparência:

root@host1 tar update
root@host2 tar update
root@host3 tar test
root@host4 update test
root@host5 update test

Desta forma, você define as tags tar, update e test. Você pode usar a tag tar para executar clusterssh nos três primeiros hosts executando cssh tar .

Pesquise na internet por clusterssh e você encontrará muitos documentos úteis.

A maioria das distribuições Linux contém clusterssh, então você pode instalá-lo facilmente, por exemplo, apt-get install clusterssh .

Editar:

Você pode adicionar seu comando ao clusterssh para ser executado, use a opção -a :

cssh tar -a "tar -cvf /tmp/TC.tar.gz /etc"

E se você usar chaves públicas / privadas ssh, não precisará digitar a senha o tempo todo ...

    
por 06.09.2017 / 14:04