(urgente)Desligar todas as maquinas simultaneamente

1. (urgente)Desligar todas as maquinas simultaneamente

Thiago henrique jeronimo
manod33

(usa Fedora)

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

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
Editar


  


2. Re: (urgente)Desligar todas as maquinas simultaneamente

Daniel Fernandes
volcom

(usa Debian)

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

Tente usar um FOR ou WHILE nesse script...


3. Re: (urgente)Desligar todas as maquinas simultaneamente

Joao
stack_of

(usa Slackware)

Enviado em 01/06/2010 - 19:17h

Supondo que você queira desligar os micros todos os dias em um determinado horáro, sugiro editar o crontab em cada micro. Basta executar como root:

crontab -e

E no final do arquivo acrescentar o comando para desligar as 18 horas todos os dias:

00 18 * * * shutdown -hP now

Você pode utilizar um dos micros da rede como servidor NTP, sincronizando ele com um servidor de tempo externo. Assim o horario dos micros da rede ficara sincronizado.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts