Desligar todas as maquinas simultaneamente

1. Desligar todas as maquinas simultaneamente

Thiago henrique jeronimo
manod33

(usa Fedora)

Enviado em 01/06/2010 - 16:43h

Seguinte galera , tenho uma rede onde o servidor é fedora e os terminais sao ubuntu 9,04.
Minha rede nos terminais começa com 192.168.0.11 ate 192.168.0.25
Instalei o openssh-server e usei este tutorial:

1 - Instale o servidor ssh nos 20 micros: apt-get install openssh-server ou baixe o pacote.

2 - No seu terminal, como root, crie as chaves de acesso com os comandos:
Código:

ssh-keygen -b 4096 -t rsa

Será solicitado onde deve ser salva a chave, digite /root/.ssh/id_rsa caso esteja indicando outro diretorio.
Em seguida, será pedido para definir o passphrase, Não Defina, Apenas pressione ENTER.
Será solicitado para confirmar o passphrase, Pressione ENTER novamente.
Pronto, chaves criadas,

3 - Agora, a partir do seu terminal, é preciso dar dois comandos para cada um dos 20 micros.
Código:

scp /root/.ssh/id_rsa.pub root@IP:/root/.ssh/
ssh root@IP "cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys"

ps: Não é o caso, mas em algumas distros, não existe a pasta .ssh dentro de root mesmo com o servidor

Agora, do seu micro, basta dar um ssh root@IP que você acessa via ssh todos os micros da sua rede.

Agora é facil criar um script, ex:

Código:

#! /bin/bash
ip=1
endip=20
until [ $ip -gt $endip ]; do
ssh root@192.168.1.$ip "shutdown -h now"
ip=`expr $ip + 1`
done


Basta rodar o script que todos os micros do ip 192.168.1.1 ao 192.168.1.20 vão desligar.
Se tiver algum micro fora da rede ou desligado e quiser agilizar a velocidade do script, mude a linha do shutdown para
Código:

ssh -o ConnectTimeout=4 root@192.168.1.$ip "shutdown -h now"

Se em 4 segundos o micro não responder, ele passa pro proximo micro.

Dessa forma foi contornado o problema do "sudo", não é usado.
O comando shutdown é dado pelo root da propria maquina, não pelo root da sua maquina, contornado o problema de administração.

Esse, acho que é o jeio fácil, a menos que alguma outra coisa atrapalhe.


Meu problema é em desligar todos ao mesmo tempo ja que nao consigo fazer o
#! /bin/bash
ip=1
endip=20
until [ $ip -gt $endip ]; do
ssh root@192.168.1.$ip "shutdown -h now"
ip=`expr $ip + 1`
done



So consigo desligar usando o
ssh -o ConnectTimeout=4 root@192.168.1.$ip "shutdown -h now"

Mais assim tenho que desligar makina por makina e usar senha toda vez que dou o comando


Como criar este script alterando meus ips para que desligue tudo simultaneamente?


Por favor me ajudem


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts