diff options
Diffstat (limited to 'repoman/bin/opengnsys.cron')
-rwxr-xr-x | repoman/bin/opengnsys.cron | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/repoman/bin/opengnsys.cron b/repoman/bin/opengnsys.cron index 76236f73..be5a0508 100755 --- a/repoman/bin/opengnsys.cron +++ b/repoman/bin/opengnsys.cron @@ -1,20 +1,39 @@ #!/bin/bash -# Comprobamos si los servicios de opengnsys están levantado y si no es así los iniciamos. +# opengnsys.cron - Script para comprobar si los servicios de OpenGnSys están levantados +# e iniciarlos automáticamente. +# Nota: este script debe ser lanzado por Cron cada minuto. + + # Variables. OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} LOGDIR="$OPENGNSYS/log" DEFAULTFILE=/etc/default/opengnsys +typeset -i OGCPU # % uso CPU # Comprobar servicios que deben estar activos. [ -f $DEFAULTFILE ] && source $DEFAULTFILE -# Si un servicio debe estar activo y no se está ejecutando, reiniciar OpenGnSys. -if [ "$RUN_OGADMSERVER" == "yes" -a $(pgrep ogAdmServer | wc -w) == 0 ]; then - date +"%d/%m/%Y %T ERROR: El servicio ogAdmServer estaba caido, se reinicia" >> $LOGDIR/ogAdmServer.log - /etc/init.d/opengnsys restart +# Salir si no se debe ejecutar la revisión en el cron. +[ "$RUN_CRONJOB" == "no" ] && exit + +# Comprobar si está activo el servidor OpenGnSys. +if [ "$RUN_OGADMSERVER" == "yes" ]; then + # Parar procesos ogAdmServer si consume más de 90% de CPU. + OGPID=$(pgrep ogAdmServer) + OGCPU=$(top -b -n 1 -p $OGPID 2>/dev/null | awk -v p=$OGPID '$1~p {printf "%d",$9}') + if [ $OGCPU -gt 90 ]; then + date +"%d/%m/%Y %H:%M AVISO: ogAdmServer (PID=$OGPID) parado, consumiendo $OGCPU % de CPU" >> $LOGDIR/ogAdmServer.log + kill -9 $OGPID + fi + # Reiniciar servicios si proceso ogAdmServer está caído. + if ! pgrep ogAdmServer >/dev/null; then + date +"%d/%m/%Y %H:%M ERROR: El servicio ogAdmServer estaba caido, se reinicia" >> $LOGDIR/ogAdmServer.log + /etc/init.d/opengnsys restart + fi fi +# Reiniciar servicios si es repositorio y proceso ogAdmRepo está caído. if [ "$RUN_OGADMREPO" == "yes" -a $(pgrep ogAdmRepo | wc -w) == 0 ]; then - date +"%d/%m/%Y %T ERROR: El servicio ogAdmRepo estaba caido, se reinicia" >> $LOGDIR/ogAdmRepo.log + date +"%d/%m/%Y %H:%M ERROR: El servicio ogAdmRepo estaba caido, se reinicia" >> $LOGDIR/ogAdmRepo.log /etc/init.d/opengnsys restart fi |