miércoles, 24 de abril de 2013

Tips & Tricks. Heart Beat de un servicio en Bash y correo si falla...

Cutre-líneas de código para comprobar si un equipo concreto, y un servicio/puerto concreto está On Line. En caso contrario, manda un correo simple.
Instalamos ssmtp desde un sencillo apt-get.
Configuramos el fichero con los datos de la cuenta de correo tal que así.
Una vez configurado, podemos hacer una prueba tan sencilla como:
ssmtp "correo destino" < fichero con el texto del mail.
ssmtp kinomakino@correocaliente.com < mensaje.

Si lo metemos en un bucle sencillo, tenemos:

while (true); do nc -vv -z 192.168.1.6 135 >/dev/null && echo Todo bien xD; sleep 5 || exec ssmtp kinomakino@hotmail.com < mensaje.txt ; done
Atención con los parámetros.Podemos suprimir el -vv (very verbose). Con -z decimos a Netcat que no envíe nada ( para no generar tráfico de red innecesario). Sleep 5 son los segundos trás cada comprobación.

Comprender que no soy muy programador, y que este sencillo script, aunque se que poco elegante, me sirve para monitorizar un servicio.

Un saludo.