Script para desligar máquinas com confirmação [RESOLVIDO]

1. Script para desligar máquinas com confirmação [RESOLVIDO]

Dorgelo Matos
dorgelo

(usa Ubuntu)

Enviado em 12/06/2013 - 14:46h

Criei um script para desligar as máquinas do meu laboratório e gostaria de colocar uma confirmação do usuário se ele deseja realmente desligar todas as máquinas. A tarefa é ridiculamente simples, mas estou começando a programar em shell.
Segue o código:


#! /bin/bash
op=`zenity --question --title "ATENÇÃO!" --text "Deseja realmente desligar TODOS os computadores?"`

desliga_todas()
{
ip=2
endip=12
until [ $ip -gt $endip ]; do
ssh root@10.1.1.$ip "shutdown -h now"
ip=`expr $ip + 1`
done;;
}
if [ $op -eq 0 ]; then
desliga_todas
else
zenity --warning --text "Nenhum computador desligado."
fi




  


2. MELHOR RESPOSTA

Daniel Zaia Manzano
dzm_linux

(usa Debian)

Enviado em 12/06/2013 - 17:03h

Amigo,

Tentei refazer seu script em minha máquina, e procurei simplificar um pouco as coisas, e corrigir pequenos erros:


#!/bin/bash
zenity --question --title "ATENÇÃO!" --text "Deseja realmente desligar TODOS os computadores?"
read QUESTAO
if [ $QUESTAO = "s" ] || [ $QUESTAO = "S" ]
then
for IP in $(seq 2 1 12)
do
ssh root@10.1.1.$IP "shutdown -h now"
done
else
zenity --warning --text "Nenhum computador desligado."
fi


Espero ter ajudado.

Abraços

3. Re: Script para desligar máquinas com confirmação [RESOLVIDO]

Dorgelo Matos
dorgelo

(usa Ubuntu)

Enviado em 12/06/2013 - 17:39h

Perfeito, dzm_linux!

Abrigado pela ajuda. Ja havia resolvido o problema aqui e ia postar, mas de qualquer forma seu script ficou mais otimizado que o meu.
A título de conhecimento, o meu script corrigido fiou assim:



#! /bin/bash

#---------------------- Função para desligar todos os computadores -----------------------------
function desliga_todos
{
zenity --info --text "Todos os computadores serão desligados."
ip=2
endip=12
until [ $ip -gt $endip ]; do
ssh root@10.1.1.$ip "shutdown -h now"
ip=`expr $ip + 1`
done
}

#---------------------------- Pede confirmação para o usuário ----------------------------------
zenity --question --title "ATENÇÃO!" --text "Deseja realmente desligar TODOS os computadores?";

#----------------------------- Testa a resposta do usuário -------------------------------------
if [ $? -eq 0 ]; then
desliga_todos
else
zenity --info --text "Nenhum computador será desligado."
fi



Obrigado mais uma vez e, Viva a liberdade e a colaboração!


4. Script para desligar máquinas com confirmação

Daniel Zaia Manzano
dzm_linux

(usa Debian)

Enviado em 12/06/2013 - 19:27h


Amigo,

Não esqueça de marcar o tópico como resolvido, para facilitar as pesquisas de outros usuários.

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts