Decir primero que el script no es la gran cosa, lo hice para uso personal ya que tenia servidores que solo tenían FTP y aveces se caían.
Se ejecuta con un cron:
La función existe no es necesaria en un principio, ya que bastaría con poner servicios que solo existen en el servidor pero es un extra para el que use el default... lo aclaro para las quejas de los grandes programadores xD
Si quieren algo complejo pueden usar:
SIM: https://www.rfxn.com/projects/system-integrity-monitor/
CSF | LDF : Index of /free/csf
WebMin: Webmin
Código:
#!/bin/bash
# Monitoreo de servicios.
# Por Skamasle - Maks.
# Skamasle.com - kb.skamasle.com
# Contacto yo@skamasle.com
# Modificación: 29 dic 2013
# Versión 0.4
# Use bajo su propio riesgo, aunque el script no borra nada ;)
# Lista de servicios a monitorear.
servicios='proftpd mysql apache2 nginx varnish memcached lighttpd pureftpd pure-ftpd-mysql httpd'
# Aquí se guarda un log de servicios caídos.
report=/root/ReporteServicios.txt
fecha=$(date)
checkstatus () {
service $1 status > /dev/null
status="$?"
# se me fue la mano, era cosa de ver si era diferente a 0 y reiniciar.. puse la lista entera
# mas que nada para mejorar el log pero lo deje así..
if [ $status -eq "1" ] || [ $status -eq "2" ] || [ $status -eq "3" ] || [ $status -eq "4" ]; then
echo "$1 esta caído" $fecha >> $report
/etc/init.d/$1 start >> $report
fi
}
existe () {
if [ -e /etc/init.d/$1 ]; then
checkstatus $1
fi
}
for servicio in $servicios
do
existe $servicio
done
Código:
wget mirror.skamasle.com/scripts/sk-monitoring.sh
Se ejecuta con un cron:
Código:
*/5 * * * * sh /ruta/sk-monitoring.sh
La función existe no es necesaria en un principio, ya que bastaría con poner servicios que solo existen en el servidor pero es un extra para el que use el default... lo aclaro para las quejas de los grandes programadores xD
Si quieren algo complejo pueden usar:
SIM: https://www.rfxn.com/projects/system-integrity-monitor/
CSF | LDF : Index of /free/csf
WebMin: Webmin