NUKI

От доста време тия „спящи кутии“ ми торвят здравето 🙂 В конкретност работят работят и в някои момент забие приемника и изисква рестарт на CAM модула. В моя случаи ползвам newcs и mgcamd за декодиране на програмите и когато забиеше някоя програма mgcamd процеса се претоварваше развиваше стоиности от порядъка на 80-90% заемане на процесорна мощ 🙂 Ясно вече имаше болест имаше и симпом само лекарство ми трябваше 😉 хубаво ама мъничетат ми 500s не разполгат с голям капацитет от команди например ps няма u аргумента top няма -p и т.н много мразим busybox 😆 Стига дивотии нека да мина към същината 🙂 Всичката необходима информация се съдържа в папката /proc след достa четене напред назад и след помощ от добрия ми прител ShadowX без които нямаше да успея се стигна до следния прекрасен скрипт клик 🙂 Също така и моя прител Nathariel които ми търпеше жуженето през цялото време 😉  ХАХ типично за мен започвам да обяснвам нещо започвам второ трето и пето 🙂 хахахах Така стига дивотии ами да взема да се хваля колко готен програмист съм 😉

Най важната конструкция в скрипта е

# Get usage cpu time
cputime=`cat /proc/uptime | awk '{print $1}' | sed 's/\.//'`
# Get process usage cpu time
proctime=`cat /proc/${procpid}/stat | awk '{t = $14 + $15;print t}'`
# wait 5 seconds
sleep 5
# get usage cpu time, again
cputime2=`cat /proc/uptime | awk '{print $1}' | sed 's/\.//'`
# get process usage cpu time, again
proctime2=`cat /proc/$procpid/stat | awk '{t = $14 + $15;print t}'`
# calculate process usage cpu time over total usage cpu time as percentage
cpu=$((($proctime2-$proctime)*100/($cputime2-$cputime)))
# limit exceed check
echo CPU usage for PID $procpid is $cpu
if [ $cpu -gt $MAX ];
then
reboot
fi

като цяло добре съм си я описал с коментарчета като добре дете 😉 Общо взето това е сърцето на скрипта взима стоиност от /proc/ид-то-на процеса/stat и следтова изчита стоиноста 5 секунди по късно. Формулката за ичисляване е кристално ясна за разбиране и второкласник ще я реши лесно. Нещо много важно за наблягане е, че скрипта ползва ash които си е доста неприятно окълцан ако си свикнал с всички лигни на bash 😉 В страничката на скрипта съм описал по подробно технологията на работа и логиката на ползване. Ще се радвам на мнения препоръки и бъг репорт, защото една глава не стига 🙂

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *