От доста време тия „спящи кутии“ ми торвят здравето 🙂 В конкретност работят работят и в някои момент забие приемника и изисква рестарт на 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 😉 В страничката на скрипта съм описал по подробно технологията на работа и логиката на ползване. Ще се радвам на мнения препоръки и бъг репорт, защото една глава не стига 🙂

От няколко дни правя firewall за офиса ми, защото досега ползвах маскарадинг на ip-тата а трябва да прекарвам всичко през SNAT, абе объркана истояи 😆 Просто трябваше да пренапиша цялата рутерска логика. Както обичам да казвам речено сторено, написах го firewall-a всичко хубаво работи сега додие време да изрязвам портове ip-та кои да има достъп и кои не. Стана ми лошо като си дадох сметка че трябва да напиша около 40 правила за достъп, то само копи и песит пак не си е хава. Тогава програмиста в мен проговори ами наприво само да ги прави. Всичко беше ясно – идеята в 2 отделни фаила пиша портове и ip-та изчитат се създават се правила за разрешаване и всичко друго е изрязано. Самия код се получи доста „тънък“ чак неочаквано малък

##Allow and DROP ip and ports
while read PORT
do
while read IP
do
$IPT -A INPUT -p tcp -s $IP --dport $PORT -j ACCEPT
done < /etc/firewall/allow_ip
$IPT -A INPUT -p tcp --dport $PORT -j DROP
done < /etc/firewall/ports

Скриптчето е адски ясно цикъл в цикъла първия чете от /etc/firewall/ports a втория от /etc/firewall/allow_ip и се създават правилта 🙂

ps Заради синктактичното оцветяване не се показва корекно знака < а се показва html еквивалента му &lt;

Като ИТ geek познавам кила народ в сферата 🙂 Кои разбиращи кои не кои си мислят че разбират а не съвсем 😉 Е днес мисял да попиша за един симпатяга които прави една доста добра програма viewnior.  Програмката служи за разглеждане на снимки. Изключително лекаи дуобна е а авторът и Сиян Панайотов я подобравя стабилно често 😉 . На саита за нея може да видите бъдещите му цели, в момента програмата е в версия 0.4. Инсталацията е по нормалния начин ./confgure && make install 🙂 Имам на идея да му помогна за портване на пакети ама това ще е в малко по далечно бъдеще че сами портинг си е мизерна работа 🙂 Неоходимите неща които ви трябват са automake и gtk2+ dev библиотеките.

ps Младеж продължаваи да ни радваш в същия дух.

Заглавието трепе а 😉 😈 Днес направих ъпгреид на сървърчето ми или по скоро изцяло го смених 😉 В момента моята жмуда работи с 2600+ Athlon Barton с 512 ddr на 400 памет което превъзхожда старата жмудка с светлинни години 🙂 миличката беше с 550mhz процесорче и с едва 3х64 sd рам на 100 🙂 Както и да е да ми е честито новото ми бебче. Като цяло хаиванчето работи и на 2,3Ghz ама имх малко проблеми с стабилноста на приложенията а ме мързеше да нацеля точните волтажи на процесора и чипсета затова го оставих на нормални нива като цяло процесорната мощ не ми е била проблем по скоро рамта винаги ми е сгъвала старото сърбърче 🙂 Последни мрънкащи думи 😉 Незнам дали знаете една благикните на линукс, ако сложите диска с операцинната си ситема на корено различна архитектура желязо ще заработи без никакви проблеми 😉 Хаиде сладури и сладурковци наслаждаваите се на новата по бърза жмуда а аз ще замисля разни стрииминг палави неща с които да ви радвам 😆 😉

ps Честит ви ден на Кирил и Методий

По пирицип съм забелязал че новите линукс ядра винаги са по бързи от старите подобрява се производителноста на системата. Абе дето се вика едно от малкото по нови но добре работещи неща. Днес ъпдеитнах ядрото на моито скромно сърбърче и бях почти зашеметен от ефекта. Потреблението на рамта падна с 10-15% което в моя случаи си е доста. Машинката е оборудвана с едва 3х64МБ рам ;).  Досега машината работеше с 2.6.18-6 версия която ъпгреиднах на 2.6.26-1. В момента машината е на 84% рам за разлика от преди когато почти постоянно беше на 98% 😉 Не че съм имал проблеми с рамата въпреки че е била толкова натоварена но положителното си положително.