Nós sabemos que a maior parte da infra-estrutura de TI foi migrada para o Linux e, recentemente, a contagem é mais, uma vez que é mais seguro e menos investimento (Poucos distro vem com licença e os restantes são freeware) se comparam com outros sistemas operacionais. Todo mundo sabe sobre o openSSH é uma das melhores ferramentas para conectar máquina Linux remota de forma segura para realizar atividades.

Quando você tem um requisito para executar o mesmo comando em vários hosts, o openSSH não funciona e talvez seja necessário escrever um script. Desenvolver um script não é uma coisa pequena para o administrador que não é nosso escopo fazer, mas ainda precisamos de uma solução alternativa para alcançá-lo.

Leitura sugerida: PSSH – Execute Comandos em vários servidores Linux em paralelo

Fiz uma pequena pesquisa no google e encontrei o utilitário chamado DSH , que funciona de forma nativa, como espero.

DSH significa Dancer’s Shell ou Distributed Shell , permite aos usuários executar comandos de shell em vários servidores Linux ao mesmo tempo.

Há algum tempo, escrevemos sobre o PSSH é um outro utilitário que é usado para o mesmo propósito, mas ambos possuem características únicas e funcionam em diferentes estilos.

Instale o DSH no Linux através do Gerenciador de Pacotes

Todas as principais distribuições Linux incluíram o pacote DSH no repositório padrão, podemos instalar facilmente o DSH com o suporte do gerenciador de pacotes de distribuição.

Para o Debian: os usuários com base em Debian podem instalar facilmente através do gerenciador de pacotes APT ou do gerenciador de pacotes APT-GET .

 $ Sudo apt-get install dsh

Ative o yaourt ou o empacotador para instalar os sistemas baseados em DSH para Arch Linux.

 $ Yaourt -Sdsh
 ou
 $ Packer -S dsh

Para outra Distro: Para outra distribuição, como RHEL, CentOS, Fedora, openSUSE Podemos compilar a partir da fonte quando a distribuição não oferece pacote oficial. Certifique -se de que devemos instalar o pacote libdshconfig para dependência.

 # Wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
 # Tar xfz libdshconfig * .tar.gz 
 # Cd libdshconfig- *
 # ./configure;  faço
 # Make install

Compile e instale dsh.

 # Wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz
 # Tar xfz dsh-0.22.0.tar.gz
 # Cd dsh- *
 # ./configure;  faço 
 # Make install

Configurar dsh

Abra o arquivo de configuração e modifique o protocolo do shell remoto para o ssh em vez do rsh , uma vez que o rsh é um protocolo não criptografado.

Para sistemas baseados em Debian:

 $ Sudo vi /etc/dsh/dsh.conf
 Remoteshell = ssh

Para sistemas baseados em RHEL:

 $ Sudo vi /usr/local/etc/dsh.conf
 Remoteshell = ssh

Configurar host remoto

Abra / crie um arquivo machines.list e adicione o IP ou o Hostname dos hosts remotos um a um para executar o comando de uma só vez. Certifique-se de substituir o seu IP em vez de nós.

Para sistemas baseados em Debian:

 $ Sudo vi /etc/dsh/machines.list
 192.168.1.150
 192.168.1.151
 192.168.1.152

Para os sistemas baseados em RHEL, não machines.list um arquivo machines.list por padrão, então crie um novo.

 # Toque /usr/local/etc/machines.list
 # Vi /usr/local/etc/machines.list
 192.168.1.150
 192.168.1.151
 192.168.1.152

Como usar dsh

Uma vez que tudo esteja pronto, você pode usar dsh para executar a atividade. Ele irá solicitar a senha de hosts remotos sempre, para evitar este login SSH sem senha.

Para obter tempo de funcionamento usando o comando DSH

 $ Dsh -a -c uptime
  13:12:23 99 dias, 19:12, 1 usuário, carga média: 1.83, 1.36, 0.82

  19:11:44 até 320 dias, 4:09, 1 usuário, carga média: 0.14, 0.19, 0.14

  13:10:22 22 dias, 19:13, 0 usuários, média de carga: 0,00, 0,12, 0,17

Como criar grupos em dsh

Quando você tem mais de uma atividade, eu aconselharia você a criar grupos e a realizar a atividade sem problemas.

Para sistemas baseados em Debian:

 $ Sudo toque / etc / dsh / groups / week1
 $ Sudo vi / etc / dsh / groups / week1
 192.168.1.150
 192.168.1.151
 192.168.1.152

Para os sistemas baseados em RHEL, não groups pasta de groups exemplo, por padrão, então crie um novo.

 # Mkdir / usr / local / etc / groups
 # Toque / usr / local / etc / groups / week2
 # Vi / usr / local / etc / groups / week2
 192.168.1.150
 192.168.1.151
 192.168.1.152

Para obter uma lista de usuários conectados no sistema usando o comando DSH.

 $ Dsh -g semana1 -cw
  13:39:46 até 197 dias, 8:12, 1 usuário, carga média: 0.00, 0.00, 0.00
 USUÁRIO TTY DE LOGIN @ IDLE JCPU PCPU WHAT
 Root pts / 0 103.5.134.17 12:55 0.00s 0.02s 0.00sw

  13:28:18 até 22 dias, 19:29, 1 usuário, carga média: 0,13, 0,04, 0,05
 USUÁRIO TTY DE LOGIN @ IDLE JCPU PCPU WHAT
 Root pts / 0 103.5.134.17 Thu11 2.00s 0.50s 0.00sw

  13:27:10 até 22 dias, 19:31, 1 usuário, carga média: 0.00, 0.01, 0.05
 USUÁRIO TTY DE LOGIN @ IDLE JCPU PCPU WHAT
 Root pts / 0 103.5.134.17 Tue11 4days 0.19s 0.19s -ba
Anúncios