Eu instalaria o pdsh e o configuraria para permitir que eu executasse comandos em paralelo em todos os servidores (ou hosts individuais selecionados ou grupos de servidores - como definido no arquivo / etc / genders do pdsh
. / p>
por exemplo. depois de instalar o pdsh
, configurando-o para usar o ssh (em vez do padrão ímpar do rsh) e definir um grupo all
que contenha todos os servidores:
pdsh -g all mv /old /new |& tee /tmp/pdsh.log
Você pode visualizar o arquivo de log com menos (etc) ou formatado com uma seção por host com pdsh
' dshbak
utility:
dshback /tmp/pdsh.log
Cada linha de saída é prefixada com o nome do host de onde veio (que é o que dshbak
usa para agrupar a saída pelo nome do host):
# pdsh -g all uptime
hanuman: 22:24:53 up 60 days, 1:38, 8 users, load average: 0.05, 0.03, 0.05
indra: 22:24:16 up 14 days, 25 min, 3 users, load average: 0.22, 0.40, 0.44
ganesh: 22:24:53 up 49 days, 7:56, 6 users, load average: 0.73, 0.79, 0.79
kali: 22:25:05 up 3 min, 0 users, load average: 0.01, 0.03, 0.02
pdsh
também inclui um comando pdcp
útil para copiar um arquivo para muitos servidores em paralelo. por exemplo. para copiar /etc/genders
do host local para todos os servidores:
pdcp -g all /etc/genders /etc/
pdsh
foi originalmente projetado para uso em clusters HPC, mas é igualmente útil em qualquer grupo (s) de servidores, incluindo farms de servidores web, replicando servidores de banco de dados etc. A capacidade de atribuir um rótulo arbitrário a qualquer grupo de servidores é útil aqui, por exemplo rotule alguns grupos de máquinas como web
, mysql
, dns
e também os tenha em all
.
Existem várias outras ferramentas do cluster ssh, mas na minha experiência, pdsh
é o mais simples de usar e o mais fácil de configurar.
Puppet, Ansible etc são ótimos para implementação em massa e atualizações, e o pdsh é ótimo para administração em massa de servidores de linha de comando.