Inicio General Tutoriales Script para monitorizar “fallos de luz”

Script para monitorizar “fallos de luz”

0

Hace unos días mis padres se fueron a disfrutar de unas merecidas vacaciones, y me encontré con un problema… la luz en casa “saltaba” en varias ocasiones y si no estaba pendiente, imaginar la nevera después de unos días de vacaciones como podría estar…., y tampoco podía estar haciendo guardia 24 horas como es lógico..

Al analizar este problema, y sabiendo que tengo “informatizada” toda la casa tanto de mis padres como la mía, encontré una forma de “supervisar” la casa en remoto, y ser “avisado” en caso de que la luz “salte” .

Evidentemente, no puedo supervisar la nevera, ni la lavadora, ni la TV… pero si, los equipos informáticos, así que, la cosa, podría ser más fácil de lo que pensaba.

La solución pasaba por generar un “script”, el cual cada cierto tiempo, lance un PING “desde mi casa” a un equipo que esté en la “casa de mis padres” (tengo las casas conectadas por wifi ) y si este contesta positivamente, no hace nada, pero si no contesta…. me mandará un e@mail tanto a mi, como a mis padres para así saber si tenemos que desplazarnos y levantar el automático para evitar algún problema mayor…

Hay muchos script por la red, pero yo he preferido adaptar entre unos y otros y elaborar uno propio adaptado a mis necesidades…

El script lo voy a ubicar en una máquina con Linux embedido ( Synology NAS DS209+II, pero puedes instalarlo también en un NSLu2 con algún que otro retoque… ) .

Lo primero vamos a crear el script :

 #!/bin/sh
IP_a_supervisar=ip_o_dyndns_a_supervisar
FROM=email_de_origen
ASUNTO=”Fallo electrico”
SMTP=servidorSMTP
USUARIO=usuario_servidor_SMTP
PASSWORD=password_servidor_SMTP
MAIL=email_destino
COPIA=email_destino_en_copia
COPIA2=otro_email_destino_en_copia
LOG=/opt/etc/scripts/log
HORA=`date`
CLEAR_LOG=`rm -rf /opt/etc/scripts/log`
status=1

ping -c 1 $IP_a_supervisar > /dev/null

status=’echo $?’

if [ “$status” = “1” ]

then      

echo “El equipo $IP_a_supervisar no responde!”  

echo “[$HORA]    – El equipo $IP_a_supervisar NO responde ping, puede ser debido a un FALLO ELECTRICO” >> $LOG      

/opt/etc/scripts/sendEmail/./sendEmail -f $FROM -t $MAIL -cc $COPIA -cc $COPIA2 -u $ASUNTO  -o message-file=$LOG -s $SMTP -xu $USUARIO -xp $PASSWORD      

$CLEAR_LOG

else

echo “El equipo $IP_a_supervisar esta encendido”

fi

 

Yo he ubicado mi script en la carpeta /opt/etc/scripts/, si lo ubicas en otra carpeta, recuerda cambiar las rutas correspondientes en el script 😉

Ahora, necesitaremos de la ayuda del que será el encargado de procesar el email, “sendEmail”.

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

ahora lo descomprimimos,

tar –zvxf sendEmail-v.156.tar.gz

cd sendEmail-v.156/

Ahora le damos permisos de ejecución…

chmod a+x sendEmail

A partir de ahora, cuando el sistema haga un PING y no responda la máquina, enviará un mail a los destinatarios marcados en el script, indicando además la hora en el que se ejecutó el script, con lo que de una forma muy aproximada, sabremos a que hora se fue la luz en casa…

El equipo al que he decidido “supervisar” es el router de adsl, ya que , siempre está encendido y no se apaga nunca, pero vosotros podéis utilizar cualquier otra máquina.

Como imagino que estaréis pensando.. “Si yo no tengo mi casa conectada por wifi a otra casa, ¿Cómo voy a supervisar un equipo de mi lan..?”

Esta solución pasa por el siguiente procedimiento:

Registrigar un host gratuito de tipo “no-ip.org” y en el router registrarlo, así, podeís apuntar a un dns localizado en el largo y ancho internet…

Ahora, nos quedará determinar cada cuanto queremos que el script de monitorización se ejecute, y esto lo haremos con la ayuda de cron.

En mi caso, he decidido ejecutar la tarea cada 15 min, así, si la luz falla, cada 15 minutos, un email aparecerá en mi bandeja de entrada recordándome que la luz se fue en casa….

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.