Script Bash Control Procesos consumen 100%CPU
Alguna veces, algunos procesos se quedan colgados, consumiendo gran parte de CPU.
Para darnos cuenta de esta situación, podemos utilizar el siguiente script. Éste comprobará
cada 60 segundos los procesos que están consumiendo el 100% de la CPU.
#!/bin/bash
while true
do
sleep 60
USAGE=`ps -eo pcpu,pid -o comm= | sort -k1 -n -r | head -1 | awk ‘{ print $1 } ‘`
USAGE=${USAGE%%.*}
PID=`ps -eo pcpu,pid -o comm= | sort -k1 -n -r | head -1 | awk ‘{print $2 }’`
PNAME=`ps -eo pcpu,pid -o comm= | sort -k1 -n -r | head -1 | awk ‘{print $3 }’`
if [ $USAGE -gt 99 ]
then
USAGE1=$USAGE
PID1=$PID
PNAME1=$PNAME
sleep 120
USAGE2=`ps -eo pcpu,pid -o comm= | sort -k1 -n -r | head -1 | awk ‘{ print $1 } ‘`
USAGE2=${USAGE2%%.*}
PID2=`ps -eo pcpu,pid -o comm= | sort -k1 -n -r | head -1 | awk ‘{print $2 }’`
PNAME2=`ps -eo pcpu,pid -o comm= | sort -k1 -n -r | head -1 | awk ‘{print $3 }’`
# Now we have variables with the old process information and with the
# new information
[ $USAGE2 -gt 99 ] && [ $PID1 = $PID2 ] && mail -s “CPU al 100% con el proceso $PNAME , PID= $PID1” webmaster@dominio.com < .
fi
done
Este será el primero de una larga lista de scripts bash que voy a ir mostrando. Crearé nuevo apartado con estos scripts. Espero que os sea de utilidad.