[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Testando um PING
From: |
MrBiTS |
Subject: |
RE: Testando um PING |
Date: |
Fri, 07 Mar 2008 10:30:02 -0300 |
User-agent: |
Thunderbird 2.0.0.12 (Windows/20080213) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
<QUOTE>
Olá galera, estou aprendendo shell script e estou tentando fazer um script
para o seguinte:
1 - Dar o comando etherwake aa:bb:cc:dd:ee:ff (endereço MAC da placa de
rede)
2 - Depois dentro de um LOOP fazer testes se essa máquina ligou , dando ping
na máquina que eu tentei ligar.
Quero deixar claro que eu vou executar esse script de um servidor e a partir
desse servidor ele ira ligar as outras máquinas pela rede.
Ao meu ver, ficaria uma coisa desse tipo:
#!/bin/bash
etherwake aa:bb:cc:dd:ee:ff
while[ligou = falso]
do
ping 192.168.000.000
if[pingou]
then
echo ¨PC LIGADO¨;
ligou = verdadeiro;
#se é verdadeiro ele sai do LOOP
else
echo ¨PC DESLIGADO¨;
ligou = falso;
etherwake aa:bb:cc:dd:ee:ff
#se deu pau ele da outro etherwake e depois testa de novo
fi
done
</QUOTE>
Olá.
Você está quase lá. Faltam conceitos, somente. Vamos construir assim:
#!/bin/bash
LIGOU=0 #Declaramos a variável LIGOU com valor 0
etherwake aa:bb:cc:dd:ee:ff > /dev/null 2>&1 # Para não sujar a tela
while [ $LIGOU -eq 0 ]; do
# Podemos testar o comando diretamente no if.
# Colocamos uma contagem de somente 3 pings, já que
# o ping dessas versões atuais do iputils continua
# pingando indefinidamente
if ping -c 3 192.168.000.000 > /dev/null 2>&1 ; then
echo "PC Ligado"
LIGOU=1
else
echo "PC Desligado"
etherwake aa:bb:cc:dd:ee:ff
fi
done
Nao temos necessidade de fazer LIGOU=0 no else do if já que ele não é
modificado durante o processo.
[]´s
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH0UNarDdxWm3R8YYRAvloAJ9O0pzVowHDKkr4BIFLewsnhJk79gCfa4VN
K2dSmSuCTgN2lxmZSBbFh1E=
=cvLe
-----END PGP SIGNATURE-----