Най- накрая успях да завърша работата си по скрипта които пиша толкова време 🙂 Вече NUKI е един доста стабилен скрипт. Подчертавам 1 защото премахнах допълнителния скрипт като го вградих в основния. Вече придоби монолитна структура, но лично според мен е по добре за демон вариант 🙂 Вече подобренията не са много, по скоро са фиксове на разни ситни бъгове и опити за подобряване на кода. Единственото осезаемо нещо което съм добавил е проверка за uptime-а на приемника. Нагласил съм го на всеки 10 дни да си прави рестарт сам.

Като погледна назад и първоначалната ми идея за скрипт които просто да следи приемниците какво се случава с тях мисля, че доволно добре съм реализирал идеята си много кратно. Единствения бъг които се надявам да избегна с 10 дневния рестарт е – има моменти в които приемника започва да се рестартира, но не успява. Избива повечето сервизи включително и мрежовия но неуспява да достигне до рестарт. За съжаление поради ограниченията наложени ми от боксовете неможях да направя рестарта да е от ядрото и по този начин да избегна и този момент. Може би някои ден за в бъдеще ще си компилирам мои си image за боксовете и по този начин ще успея да се справя с този проблем. Засега се надявма последното ми е решение да го замаже 🙂 Иначе всичко останало се получи изключително добре, дори много по добре от първоначалния ми замисъл. Особено при положение, че преимана през толкова метаморфози. Най бъгавата част си остана web интерфеиса, затова продължавам да не го давам 😆 след като седна да го пренапиша тия дни ще го кача и него за свободна консумация. Финални думи – вместо да протаквам просто искам да благодаря на всичките ми приятели, че търпяха глупавите ми въпроси за това и онова – имате важен принос в деизаина на кода. Признателност заслужава и човека на които е кръстен проекта и ми е служил като вдъхновение в повечето моменти на бездарно писане 🙂 … Дам заслужаваш го!

Днес поработих малко над новата NUKI верси. Най накрая докарах ред и до нея, а ми се ще да я пооправя малко преди  да пусна последната стабилна, вероятно и финална версия. Та имах идеята да проверявам колко дни е uptime на приемник,  че повечето ми правят проблеми след като са били повечко време, затова реших да правя през 10 дни един прфилактичен рестарт. Набързо драснах конвеирче дето да ми изчиства дните от останалите променливи защото резултата откомандата uptime е доста неприятен за работа

# uptime
12:13:57 up 30 days, 20:07,  1 user,  load average: 0.00, 0.00, 0.00

Та въпросни ред се филтрира само от суперския конвеир 😛

uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'

Като ако работното време е дни резултат е цяло число с дните, а ако е часове резулататът е подобен на

neo2shyalien@neo2shyalien-box:~$ uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'
1:34,  5 users,  load average: 0.46, 0.39, 0.41
neo2shyalien@neo2shyalien-box:~$

Заради Което минава през проверка за вида на стойноста

if echo $days | grep "^[0-9]*$" > /tmp/null
then
   echo "Uptime in days is $days"
else
  echo "Uptime isnt in days"
fi

Просто лесно и ясно в if-а конструкцията проверява дали стоиснота съдържа само цифри с регулярни израз grep „^[0-9]*$“.

Най- после ми остана да оправя и последните щрихи около моето скромно проектче NUKI 🙂  Като цяло има адски много промени каде явни каде не, но определено си беше доста ползотворно упгреидване по всички скриптове и дори се наложи да добавя 2 нови че  мигрирам от плоски фаилове към бази данни 😉 Също така си направих и едно changelog фаилче, че нали съм старост нерадост забравям кога какво 😉 Фаилочето е с кодиравка UTF-8, да знаете в случаи че го отворите през браузара 😉 Стига празни приказки нека да представя промените 😆

Подобрена функционалснота за дневниците:
1. Заради неточност в времето на повечето приемници се взима времто на сървъра
2. Повече информация – причина за рестарт на приемника
Клиентската част получава параметри за това дали канала е криптиран, ако е криптиран и няма необходимия сервиз се рестартира приемника. Ако не е не е задължителен рестарта.(бъдещо фиксване)
Сървърната част предава аргументи

Като цяло нещата по логването бяха много бъгави всели приемник с негова си дата и час и определено ми беше проблем, затова реших че е по разумно да идва дата от сървъра които съм го закачил към NTP съръвър 😉 Лог системата е направена да ми различава рестартите и прочие че нали съм лювопитно хлапе хубаво е да знам 😉 Сървърната част е леко променен че да подава съответните аргументи към приемника които преди това съсм съставил от базата данни 😉 Ами в общи и не чак толкова общи линии е това

Преди извесно време ви споменах че ще започваме проекта Еском кабелна телевизия и като цяло започнахме 🙂 Вече в моя град сме на финалната права през масовото закачане на абонати и прочие. Днес ми се наложи да съжия един умрял dream box 🙂 ако сте се занимавали с сателитна телевизия или с такива приемници няма начин да не знаете Dream-Multimedia-Tv 😉 за сателитни приемници ползваме  модела dreambox 500s като цяло добър приемник малък по размер с изход на dvb тунера за да се закачат още устроиства след него. С лан карта дистанционно и уеб интерфеис за отдалечено управление и четец за карти и най важното с линукс фирмуаяр… какво му трябва повече на човек. Отделно че е предпочитан от сателитните пирати заради лесния шаринг на ключове 😉  Та стига празни приказки да пристъпя към същинката. Отивам в офиса и гледам единия канал умрял поверявам за уеб интерфеис няма връзка по лан тоже sux 😆 рестартирам приемника изчаквам около 2 мин няма никои, закачам се дирекно за него пак продължава да няма никои sux twice! Свалям го и решавам да пробвам дали ще успея да го възтановя през COM порта му 😉 наинапред се закачих дирекно да видя дали има надежда към него с битреит 9600 и о светота излязоха ми символи на шлюкавица супер значи буут рома не е умрял. Дръпнах си DreamUP една прекрасна програмка за възтановяване на спящите кутии 😉 😈 Интерфеиса и е супер симпъл имаш общо 4 бутона  и 2 избора дали да се закачиш по лан и или сериен порт и от там нататък имаш възможност за флаш и изтриване на стария флаш. Най напред пуснах да се флашва правил съм много кратно това и си знам че се трие стария флаш и след това се презаписва новия. Всичко стана нормално. Но кутията така и не се съживи %&77!$&^!&*!%@$ доста бързи слова към производителите. След това си викам я да псуан да изтрия флаш а и след това да префлашна наново и гледам че като пуснах да трия флашром-а и почна да трие досат повече неща с изключение на боот ром-а. Super маи ще стане след това флашвам наново и о небеса тръгна уизърда за първоначално стартиране на dreambox. От там нататък всичко е банално. Важното е било че е имало омазани настроики заради които не се е стартирало, отделен е въпроса как ги е омазало и прочие но това е една мистерия която няма как да разбера 🙂