miércoles, 15 de noviembre de 2017

LINUX Script para reinciar un proceso si consume el 100% por mucho cierto tiempo

#!/bin/bash

java_all=$(top -b -n 1|grep java)
java_load=$(echo $java_all |awk '{print $9}')
java_proc=$(echo $java_all |awk '{print $1}')
i=1;
CPU_THRESHOLD=95

while [ 1 ]; do

java_all=$(top -b -n 1|grep java)
java_load=$(echo $java_all |awk '{print $9}')
java_proc=$(echo $java_all |awk '{print $1}')
#echo antes de empezar
#echo $java_load
#echo $CPU_THRESHOLD
if [ $java_load -gt $CPU_THRESHOLD ] ; then
i=$((i+1));
#echo sumando 1
fi

if [ $java_load -lt $CPU_THRESHOLD ] ; then
#echo restando -1
i=$((i-1));

if [ $java_load -eq 0 ] ; then
#echo todo en 0
#echo $i
i=0;
fi

fi

if [ $i -gt 40 ] ; then
echo se saturo >> logprueba.log
date >> logprueba.log
kill -9 $java_proc
sleep 1
/etc/init.d/tomcat6 restart
i=0;

fi

sleep 5
done