Per process CPU monitoring

Also, for anyone interested that may stumble across this in the future, here is a slightly modified version of what @kdeutsch wrote originally that doesn’t write the check information to disk:

#!/bin/bash

processes=$(ps ax -o pcpu,command --sort=-pcpu | head -n6 | tail -n5)
i=1
while read CPULOAD LINUXCOMMAND
do
 echo "0 Top_5_CPU_No.$i cpuload=$CPULOAD $LINUXCOMMAND has a CPU load of $CPULOAD"
 i=$((i+1))
done <<< "$processes"

EDIT/UPDATE: for anyone looking to do this for processes using memory (instead of CPU):

#!/bin/bash

processes=$(ps ax -o pmem,command --sort=-pmem | head -n6 | tail -n5)
i=1
while read MEMLOAD LINUXCOMMAND
do
 echo "0 Top_5_MEM_No.$i memload=$MEMLOAD $LINUXCOMMAND has a MEM load of $MEMLOAD"
 i=$((i+1))
done <<< "$processes"
1 Like