Здравейте от доста време несъм писал, че имах едни тежки 5 дневни купони 😆 и почти несъм имал време да бъда в реална кондиция, че да драскам смислени неща 😈 Но както и да това е тема за някои следващ пост 😉 Засега ще се позанимая да разгледам темата за open source firmware за рутери (маршрутизатори). Досега няколко пъти съм споменавал dd-wrt като мои личен фаворит, но преди по малко от седмица нашето момче gat3way откри брутален секюрити бъг в софтуера му, което ме накара да разгледам по сериозно някои от другите проекти. В кокретност се спрях на tomato което отдаван ми беше препоръчал моя прител Жоро Филипов.

Преминаването от единия софтуер към другия беше безпроблеме дирекно от часта за упгреид, нямаше нужда от допълнителни врътки. След инсталацията на „домата“ ме впечетли изчистения му интерфеис. Като цяло винаги съм предпочитал нещо семпло като дизаинче не нещо претрупано. Като красота определно dd-wrt води а tomato изглежда като съдадено от мен – 2-3 цвята, но за някои това е красиво 😉 .  Другото което ми направи голямо впечетление е доста по малкото възможности – липсват му около 40% от разните му сървирски хави и прочие които има dd-wrt. Дам обаче за сметка на това работи доста по леко 😉 Така че дефекта може и да е ефект. Приятна изненада е, че tomato идва с описани портове за по добър p2p трафик и с разрешен UPnP . Също така прави впечетление, че домата подържа малко по високи скорости на трансфер при безжична връзка, при лан неъм тествал понеже нямам особено време, но мисля че все още има какво да се пооптимизира. Минус е подръжката на малката гама устроиства за разлика от dd-wrt, tomato работи на доста по ограничн брои устроиства, надявам се за в бъдеще да се промени този факт 😉 Също така минусче е доста по сложния филтър на лимитиране на трафика (мен това ме кефи ама някои непросветен ще се оцъкли). Друг минус е липсата на овърклок на процесора на рутера, въпреки че четох за магии през конзолата 😉 . Като цяло това е сравнително синтезирано и опростено сравнително ревю между двата софтуера, лично мен ме радва повече доматчето, но все още има и други подобни които несъм тествал 😉

Незнам дали някои от вас страда от безсъние, но при мен е чест посетител. От сравнително отдаван не бях имал толкова тежка форма – цяла седмица съм полу заспал полу буден със силна липса на концентрация. За незапознатите дето само са са чували по филмите нещата изглеждат така – заспал си докато си буден и си буден докато спиш. Света сякаш се движи по бавно, разтяга се в пространството неимоверно много. Опитваш се да спиш и задрямваш и не след дълго се разбуждаш и така докато не стане време за ставане. Като се събудиш познай колко си бодър 😀 Като цяло според добре написания материал в вики-то 😉 страдам от лека до тежка форма на безсъние. 😀 Понякога имам чуство, че гледам света през защитен екран сякаш е такъв един – далеч от мен и имам всякава липса на концентрация. Предималко се прибирах от работа – пеш и имах чуство, че ще заспя по пътя. Мале ебаси и скапанато състояние с 2 думи спи ти се постоянно а неможеш да се наспиш. Един от сигурните начини които съм намерил е да се отрежеш на макс 😉 за предпочитане с твърд алкохол, че от бирата се подува коремчето 😆 . Има някаква засивисмост между главоболието ми, странните сънища и безсънието – всичко идва на куп 🙄 Като цяло беше понамаляло преди съм имал месечна цикличност, сега от време на време по няколко седмици. Смятам, че горещините са причина, но каквото и да е не е сред най- притните неща 🙂

Така работата продължава 😉 Имам си нова версия на NUKI основното подобрение е, че правилогове на това кога се рестартира приемника. За целта съм използвал nc като го вдигам на порт 666 😈 и през него хвърля лога преди да се рестрти. За да може да е вдигнат nc докато работи cron-a за логване по дримовете съм напсиал скрипт които върти в безкраен цикъл nc защото след всяка конекция към него се затваря с приключването на трансфера. Сами скрипт е досатъчно кратък и ясен при желание да се променят портовете и мястото каде да пише фаила 🙂 Самия лог смятам по натам в времето да го импортирам в база данни затова и формата на дата-та е такъв.

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

Както ви разказах вече манията ме тресе по първата си моя лична кола. От събота съм започнал оглеждане на коли, първо бях в София и гледах една страхотно запазена кола с едно голямо но, според хора които разбират доста има проблеми с двигателя. Иначе като визия и летящи възможности вече съм убеден, че това е моята кола. 😆 Усещането да я караш е ненормално яко, все едно да правиш секс с секса 😉 Днес бях до Пловдив да видя друга. Верно малко по стара е от пъвата, с малко повече забележки по външния вид, но пък с читав двигател и с металик боя и много готини стопове 🙂 Като цяло факта, че е малко по стара няма какво да ме притеснява стига двигателчето да е читаво. Няма да спра да оглеждам но като цяло виждам как стоят нещата – това не  масова кола като форд, опел или фиат, този модел е доста труден за намиране и ако се намери по нова година с климатик си е доста трудно особено с двигателя които искам 😈 Ми така де като ще я копувам поне да може и да лети 😉 Не че по късен етап от време няма да претърпи сериозни модификации ама нека да си е родена „силна“. Стига съм ви тровил с фикс идеи както от преди знаете, в мен живее демон дето само чака някоя готина фикс идея и ме гложди отвътре до изпълнение 😉