Script de verificação do status de computadores ou servidores

Fala pessoal!

Bom, esse post é meio nerd e mas achei interessante a idéia de compartilhar com vocês que usam Linux esse script que montei. Aqui em casa temos uma rede interna com alguns notebooks e desktops e nosso roteador atual faz o controle de banda dividindo-a através de faixas de IP. Mas nem sempre estamos com todos computadores online, então acabamos por “desperdiçar” essa banda dividida.

Mas como saber quais computadores estão ligados? No Windows 7 eu usava o Gadget Server Ping que fazia essa veficação. No Linux não achei nada (mas nem procurei muito também) e decidi fazer um script bash rápido para tal verificação.

O Script

Para usar o script, eu faço consultas com ping de minuto a minuto. Limito o ping em 1 pacote e com timeout baixo para não perder muito tempo com essa verificação. Uso também o notify-send que envia um popzinho no meu desktop para alertar os computadores ligados ou desligados. Segue abaixo:

#!/bin/sh

#Script to check ips

#

ligados_s=”“;

while :

do

ligados=”“;

for ip in `seq 1 254` ; do ping -c 1 -w 1 192.168.10.$ip>/dev/null; [ $? -eq 0 ] && ligados=$ligados”192.168.10.$ip\n” || :;

done;

if [ “$ligados” = “” ]; then

if [ “$ligados” != “$ligados_s” ]; then

notify-send -i dialog-warning “COMPUTADORES DESLIGADOS”;

ligados_s=”$ligados”;

fi

else

notify-send -i up “COMPUTADORES LIGADOS” $ligados;

ligados_s=”$ligados”;

fi

sleep 60;

done

Feito o arquivo bash e dado permisão para execução, eu o enviei para /usr/bin/ e coloquei para ser executado no boot. Note que o script roda em um loop infinito, usei tal recurso para preservar as variáveis usadas no processo. Como eu disse, é um script rápido.

Modificações

Como puderam notar, é um script simples e pode ser adaptado. Se você é sysadmin, basta colocar os ips dos servidores na lista e aumentar um pouco o tempo de timeout e pronto! Quando os computadores estiverem online (ou podem mudar a condição para quando não estiverem online) você será avisado.

Conclusão

O script está rodando há alguns dias aqui em casa e tem me informado exatamente o que tem acontecido na minha rede interna. Diminui o range de ips para 30~39 pois uso somente esses ips. Mais para frente modifico esse script e posto novamente visando quem é sysadmin e precisa saber quando os servidores estão offline.

  1. aissegoo posted this