Pri duonjaro post mia lasta anonco sur Dreambox monitoranta sitestemata mi mi anoncis novan kaj verŝajne unu el la lastaj versioj de Nuki. Версията беше готова още преди 2 sed kie monatoj de pigreco kie por depuración aferoj pozabaviha kun anonco. Tagoj de laboro 32 dreambox 500-s kaj ĝenerale tre bonaj rezultoj. La ŝanĝoj estas tre – estas forigita de la idiota zvisimost linux servilo de aprobotaj ŝtipoj – ne bezonas havi apache + php, ĉar la nova skribsistemo tagaloj estas provizitaj parametroj por php skripto servilo. Apart've ŝanĝis la skripto por labori sen servilo flanko – se vi havas iuj satelito riceviloj ne signfa al vi senĉese kuras servilo de kiu preni info do ĝi povas esti traktita en la skripto hardkodnato 2 ŝanĝiĝema informo sur CAM-kaj. Mi ankaŭ deklaris plia variablo debug – se vi ne volas ne balanciĝadis ŝtipoj – denove witless enirpermesilo ol antaŭe 🙂 Lumo popraviki en la kodo estis napreveni, kiu aspektis kiel imbecile skribita de semiliterate (Jes, estas ne ke Decembro). Akra ni 2 Kritika eraroj en la kodo kondukante al ĉeso de laboro sur la skripto en iu hazarda momento, denove oligofrenski preterlasoj de mia flanko. Ĝenerale skribas ne tre simple devis konsideri fari homo, ke Busybox kaj cindro ne estas la facila aĵoj por dresas. Tiu tempo mi povas savi grandan rant kodo kaj rekte klarigi kion variabloj por kio ĝi estas kaj kion traktadoj povas fari kun ĝi (novaj) 🙂

SERVER="192.168.100.1"
 STANDALONE="FALSE" #using like stand alone app no server side depends ; )
 HCAM1="" ## if starting like stand alone app give me CAM namezzz if HCAM1 is empty its means chanel is free
 HCAM2="" ## CAM2 name
 PORT="666" # port rockzzz : D : )))))))))))))))))
 IP=$(ifconfig eth0 | grep inet | awk '{print $2}' | sed -e '[email protected]:@@')
 FILE='/tmp/debug'
 INFO='/tmp/info_file'
 NC=$(which nc)
 WGET=$(which wget)
 MAX_DAYS="10"
 TIMEOUT="600"
 MAX=70 #max cpu usage per process
DEBUGING="TRUE" #if u wanna script send debug information set DEBUGING to TRUE if SEVERLESS is set to true this var will be skiped
 NEWDBGSTYLE="TRUE" #debuging new style sending info to apache derectly, old style using nc

Do evidente Variabloj nomoj paroli por si suficha kaj mi ne povas diri ajnan alian saĝan vorton.

standalone Ĝi estas unu el la plej gravaj variabloj se fine VERA ne fari alvokojn al la servilo kaj ne plu postulas, dependanta sur la servilo, se vi uzas gxin vi devas meti valorojn sur la jenaj HCAM1 (Mi ne scias kial mi nomis tiel mi ne memoras nun sed negrave). Se ne estas valoro en ĝi kaj skritpa standalone skripton akceptas ke ĝi funkcios sur neĉifritaj kanalo kaj ne kontrolis por malĉifro modulo, se vi kontrolu laŭ la aro valoro taksado. HCAM2 Ĝi estas nedeviga se via decodificador modulo uzas nur 1 procezo diri CCcam ekzemplo.

DEBUGING dua interesaj ŝanĝiĝemaj kiu prlyue informo aŭ silente laŭ dependas kio valoro vi senmoviĝita. Avotmatichno pasas en kvieta tranĉo se standalone ĝi estas VERA

NEWDBGSTYLE malŝparo estas grava promenliva. Ĝi difinas kiel estos kopiitaj al la servilo protokolojn. Se VERA estos la nova vojo sen idiostkata laŭ netcat. Se vi ankoraŭ tenas vian malnovan metodon de meti FALSA. Esence tiuj estas la aferoj kiu devas enfokusigi sed mi, ŝanĝoj kvankam kardinalo restos ideon por travidebla aro defaŭlta valoroj 🙂

Sendube mi estas tre kontenta kun kiel aferoj – skripto fariĝis fleksebla sufiĉa otpdnaha idioto depende aldonan dosierojn por funkcioj kaj jam otpdna kaj dependeco nc pensi aŭ la bezono de servilo kaj tiel ne ĉiuj ĝuas 30+ skatolon-a kiu havas servilon aŭ povas nur havi hejmo enkursigilo. Ankoraux estas loko por plibonigi sed nuntempe mi planas deteni de takvia aferoj ĉar ĝi estas imperativo 🙂

Dosieroj kiel kutime trovitaj en dosierujo а крипта за въвеждане на логовете може да свалите от tie

И по случай добрия скрипт едно ускорено парче за всички ускорители 😀

Plibonigita per Zemanta

Dum preskaŭ unu jaro mi estis laboranta sur mia democheto Nuki. Hodiaŭ mi havis tempon por rektigi aferojn ĉar estis multaj aferoj, kiuj estis ne tute bona. Aldonis novajn funkciojn. rearanĝitaj kodo, kun pli karakterizaĵoj do mi mallongigis ĝin kaj fariĝi pli uzanto amika.

La ĉefa nova trajto kiu trafis signalon kaptilo-kaj. En iu punkto kiel ŝpinita demono dreambox ricevilo decidis mortigi lin kaj tiel haltas monitoreo procezo mia, kiu en si mem estas sufiĉe malagrabla momento. Kaj mi ne povas kompreni kio okazas kiel la loko por ŝtipoj estas outrageously malgranda kaj mi devas fari komplikaj skemoj kradajxo agoj kiuj ne agu. En linioj: Komuna signalo kaptilo-a estas agrabla karakterizaĵo de bash skriptoj interkapti signalojn de eligoj aŭ tiuj senditaj de la kerno-a mortigo diros 😉 kaj tiel ni povas malhelpi iujn de la tuj posta okazaĵoj. Nur elpremi ke SIGKIL aŭ mortigi -9 ne povas esti interkaptis kaj malhelpis, Ĝi estas desegnita en la kerno. Ĝi finiĝas rekte sendita malsupren PID. Nun rilata kodo

#trapping signals I know -9 dosent work but we try it just in case ; )
trap on_exit 0 14 1 2 9 13 15 6 8 4 3 11 5
on_exit () {
make_debug 10 #unexpected error
#reboot now if we hawe trapped signal
reboot -d 0
exit 0
}

Nia unua linio deklaras kion ago preni kaj kiu signaloj ne povas kapti vin pli atentaj viro signaloj En la kazo 😉 min jam intereso mi. Kiel vidita konduki al simpla funktsiika kiu faras debug mesaĝo kaj rekomenco ricevilo. Jes, tagmanĝo, kiu kondukos al la rezulto, ke mi atendas, ĉar mi pensas ke ĉiu kiu malhelpas estas mortigita per mortigo -9 sed nenio neebligas provi.

La alia granda ŝanĝo estas la funkcioj plej aferoj kiuj ripetas kodo ilin pakis en funkcioj, ĝi estis iom unsightly ne, nun estas la de 😉 mi havis mildan dramo rekompence bash-kaj – Mi metis vian revenon en funkcio kaj atendas konduto kiel ĉiuj miaj aliaj konataj programlingvoj, sed rezultis ke reveno nur redonas entjeron valoroj kaj poste supren 2 😀 kaj mi volis ŝnuro min. Troviĝis malbela hellhole. La solvo estas simpla

#---cuted---

if [ $T -eq $N ]
 then
 echo "Cam is down! Reboot..."
make_debug 4 # cam is down
 else
echo $rcam
 fi

# ---cuted----

#finding real cam1
 rcam1=$(find_cam $cam1)

Първата част е края на функцията ми и чрез echo изплювам резултата. Взимането му е елементарно с последния ред в горния пасаж.

hmmm opinias, jen la interesa parto de la kodo.

Mi volas danki inspiro 😉

http://www.youtube.com/watch?v = SilMJ0O13UI&trajto = rilatajn

plej- Fine mi povis fini laboron sur la skripto oni skribu tiel tempo jam 🙂 Nuki estas unu sufiĉe stabila skripto. elstari 1 ĉar forigante la ekstran skripto mi konstruis ĝin en la ĉefa. Ĝi gajnis monolita strukturo, sed persone mi pensas ĝin estas bona por demono versio 🙂 Jam pliboniĝoj ne tre, prefere estas eraroj sur iu eta bugs kaj provoj plibonigi kodo. La sola konkreta afero mi aldonis ĉekon por uptime-kaj Ricevilo. Starigis ĝin por ĉiuj 10 tagojn por fari sin rekomenco.

Rerigardante, mia komenca ideo por skripto kiu simple kontroli riceviloj kion sluchava ilin pensas, Mi rimarkis feliĉe bona ideo multajn fojojn. La sola eraro kiun mi esperas eviti 10 ĉiutaga reboot trovas – estas momentoj en kiuj la ricevilo komencas rekomenci, sed malsukcesas. Mortigante plej atelieroj inkluzive reto sed neuspyava atingo rekomenco. Bedaŭrinde pro la limigoj postulitaj de miaj skatoloj nemozhyah fari estas rekomenci la kerno kaj tiel eskapis kaj nun. Eble iam en la estonteco estos kompili mia bildo por liaj skatoloj kaj tiel povis trakti tiun problemon. Nuntempe nadyavma daŭri mian decidon forgliti super 🙂 Alie ĉio alia ekstreme bone ricevita, eĉ multe pli bona ol mia originala ideo. speciale ekde, Renomu ĝin en tia metamorfozojn. Plejparte restis fuŝan TTT interfeisa, do daŭrigi ne doni 😆 iam sidis reskribi tiujn tagojn ricevos lin senpage konsumo. fina vortoj – anstataŭ procrastinating nur mi volas danki al ĉiuj miaj amikoj, ke toleris mia stulta demandoj pri tio kaj tiu – Vi havas gravan kontribuon en deizaina kodo. Meritas estimon kaj homo, nomata mian projekton kaj funkciis kiel inspiro por multaj momentoj de sentalenta skribo 🙂 … Dame meritas!

Hodiaŭ mi laboris iom pli novaj versoj Nuki. Fine alportis por ŝi, а ми се ще да я пооправя малко преди да пусна последната стабилна, kaj probable lasta versio. Do mi havis la ideon kontroli kiom da tagoj uptime de la ricevilo, че повечето ми правят проблеми след като са били повечко време, tial mi decidis fari 10 prfilaktichen tagoj reboot. Mi garabateado trans konveirche kie mia demetas la tagojn de aliaj variabloj ĉar la rezulto otkomandata uptime estas sufiĉe malagrabla tasko

# 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 }'

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

[email protected]:~$ uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'
1:34,  5 users,  load average: 0.46, 0.39, 0.41
[email protected]:~$

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

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]*$”.

Eee vivis por vidi lin tie Nuki 1.0 Kial 🙂 de versio 0.6 Mi saltis el 1.0 Vi demandas min, sed tre simpla – Jam ni havas unu 100% universala Nuki kovrante ĉiuj postuloj, kun malmultaj esceptoj Cotto fiksos en la estonteco kaj pli grave ĉi tiu versio estas implementado en fundamente malsaman vojon. Mi reiris al mia malnova ideo de demono kaj iom elprovo kaj eraro ĉi tempo aferoj teamis bonega. Servilo apliko estas tute dismetinta krom mallonga php skriptche kiuj tiras informon Nuki-i 🙂

E jam atingis preskaŭ ĉiu Nuki kie pli? Bone co Esti honesta mi ĉiam eble pli, ekzemple pensas fari en instalilo skripto diru fari aferojn iel facila kaj komprenebla eĉ por Linukso uzanto ĉio okazas kiel ebla- kelkaj problemojn por uzantoj. Sed ĉiu havas lia tempo. Aktuale en Nuki ol io mi dobavail modulo kiu monitoras la rilaton al la servilo, malaperas se la ricevilo mem rekomencas. Por la momento Jes, tie estas ankoraŭ establita, se ĝi funkcias hihihiihh 😆 Abe ĝenerale viangi havos ion por deziri, aŭ freŝan ideon de iu ankoraŭ unu kapo vi ne povas imagi kiel 2-3-4 aŭ pli, Mian 😈

ps Denove tion kun kaŝnomo. Mi kredas ke mi jam havas tre solidan bazon por ĉio ni decidas estonte fari kun mia skripto