[d0df50b6] | 1 | #!/bin/bash |
---|
[1602040] | 2 | # opengnsys.cron - Script para comprobar si los servicios de OpenGnSys están levantados |
---|
| 3 | # e iniciarlos automáticamente. |
---|
| 4 | # Nota: este script debe ser lanzado por Cron cada minuto. |
---|
| 5 | |
---|
| 6 | |
---|
[71643c0] | 7 | # Variables. |
---|
| 8 | OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} |
---|
| 9 | LOGDIR="$OPENGNSYS/log" |
---|
| 10 | DEFAULTFILE=/etc/default/opengnsys |
---|
[1602040] | 11 | typeset -i OGCPU # % uso CPU |
---|
[71643c0] | 12 | |
---|
| 13 | # Comprobar servicios que deben estar activos. |
---|
| 14 | [ -f $DEFAULTFILE ] && source $DEFAULTFILE |
---|
| 15 | |
---|
[1602040] | 16 | # Salir si no se debe ejecutar la revisión en el cron. |
---|
| 17 | [ "$RUN_CRONJOB" == "no" ] && exit |
---|
| 18 | |
---|
| 19 | # Comprobar si está activo el servidor OpenGnSys. |
---|
| 20 | if [ "$RUN_OGADMSERVER" == "yes" ]; then |
---|
| 21 | # Parar procesos ogAdmServer si consume más de 90% de CPU. |
---|
| 22 | OGPID=$(pgrep ogAdmServer) |
---|
| 23 | OGCPU=$(top -b -n 1 -p $OGPID 2>/dev/null | awk -v p=$OGPID '$1~p {printf "%d",$9}') |
---|
| 24 | if [ $OGCPU -gt 90 ]; then |
---|
| 25 | date +"%d/%m/%Y %H:%M AVISO: ogAdmServer (PID=$OGPID) parado, consumiendo $OGCPU % de CPU" >> $LOGDIR/ogAdmServer.log |
---|
| 26 | kill -9 $OGPID |
---|
| 27 | fi |
---|
| 28 | # Reiniciar servicios si proceso ogAdmServer está caído. |
---|
| 29 | if ! pgrep ogAdmServer >/dev/null; then |
---|
| 30 | date +"%d/%m/%Y %H:%M ERROR: El servicio ogAdmServer estaba caido, se reinicia" >> $LOGDIR/ogAdmServer.log |
---|
| 31 | /etc/init.d/opengnsys restart |
---|
| 32 | fi |
---|
[71643c0] | 33 | fi |
---|
[1602040] | 34 | # Reiniciar servicios si es repositorio y proceso ogAdmRepo está caído. |
---|
[d0df50b6] | 35 | if [ "$RUN_OGADMREPO" == "yes" -a $(pgrep ogAdmRepo | wc -w) == 0 ]; then |
---|
[1602040] | 36 | date +"%d/%m/%Y %H:%M ERROR: El servicio ogAdmRepo estaba caido, se reinicia" >> $LOGDIR/ogAdmRepo.log |
---|
[71643c0] | 37 | /etc/init.d/opengnsys restart |
---|
| 38 | fi |
---|
| 39 | |
---|