Despre o jumătate de an după anunţul meu ultimul pe Dreambox monitorizarea meu sitestemata am pot anunţa noi şi, probabil, unul dintre ultimele versiuni de Nuki. Версията беше готова още преди 2 luni de lene, dar în cazul în care în cazul în care lucrurile sunt pentru depanare cu anunt pozabaviha. La câteva zile de lucru pe 32 Dreambox 500-s, iar rezultatele sunt foarte bune. Modificările sunt foarte – eliminat este idiot conform Linux server pentru a transfera busteni – Acum trebuie să aveţi apache + PHP, deoarece noul sistem pentru scris jurnale este să prezinte parametrii la un script php pe server. Am modificat script-ul pentru a lucra fără partea de server – Dacă aveţi unele receptoare de satelit nu este semnificativ pentru a le pune un server pentru a lua info, asa ca pot muta hardkodnato script-ul cu 2 informaţiile variabile pentru CAM-. Am, de asemenea, au declarat unei variabile suplimentare pentru depanare – Dacă nu doriţi jurnalele nu aruncare – retardat din nou gol decât anterior s-au făcut 🙂 lumina popraviki în codul, Se părea ca scris de polugramoten retardat (nu că eu nu sunt de). Ostrane noi 2 erori critice care să conducă la încetarea lucrărilor script-ul la un moment aleatoare, din nou oligofrenski omisiuni partea mea. În general scris nu a fost foarte pur şi simplu a trebuit să ia în considerare a face ca oamenii, că busybox și cenușă nu sunt lucruri uşor de domesticire. De data aceasta cred că a salva big declama cu codul şi să explice ceea ce variabile pentru ceea ce este şi ce tratamente se pot face cu ea (noi) 🙂

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

Atât de evident promenliviti nume vorbesc de la sine dar suficient deşi şi vreau să spun câteva cuvinte inteligent.

STANDALONE este una dintre cele mai importante variabile este adevărat în cazul în care setnata nu va efectua apeluri la server şi nu va necesita mai potrivit server în cazul în care îl folosiţi trebuie să puneţi următoarele valori şi HCAM1 (Nu ştiu de ce am numit-o ca nu-mi amintesc acum, dar nu conteaza). În cazul în care nu există nici o valoare reală în ea şi este un standalone script-ul skritpa presupunând că va lucra pe canale necriptate şi nu există nici o verificare pentru modul de decriptare, Dacă va testa în funcţie de valoarea reală specificată. HCAM2 opţional, dacă utilizaţi numai modulul de decodor 1 Să spunem de exemplu procesul de CCcam.

DEBUGING interesant a doua variabilă prlûe sau informaţii va tăcea potrivit depinde ce valoare ai sunt trântit. Avotmatično trece la o reducere dacă STANDALONE este adevărat

NEWDBGSTYLE Proiectul unei variabile importante. Acesta va transfera log-urile server. În cazul în care adevărat va este nou mod fără idiostkata potrivit netcat. Dacă încă mai păstra metoda veche pune FALSE. În General, acestea sunt lucrurile pe care trebuie să se concentreze, dar cred că, Deşi modificările sunt radicale o idee va rămâne transparentă pentru implicit specificate valorile 🙂

Cu siguranta sunt foarte multumit de cum lucraţi – script-ul a devenit deja suficient de flexibil otpdnaha idiotkite în funcţie de fişiere suplimentare pentru caracteristici, precum şi otpdna şi cred că în conformitate cu nc sau nevoia pentru un server, etc, nu toată lumea se bucură 30+ Box-o ca un server sau poate avea un router un. Are încă o mulţime de a îmbunătăţi, dar de acum cred că am de gând să se abţină de la lucruri pentru că takvia nu este necesar 🙂

Deoarece fişierele sunt, de obicei, situat în Director а крипта за въвеждане на логовете може да свалите от aici

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

Consolidată prin Zemanta

Timp de aproape un an, am fost de lucru pe democheto meu nuki. Astăzi am avut timp pentru a îndrepta lucrurile, deoarece au existat o mulțime de lucruri care nu au fost destul de bune. Sa adăugat o nouă funcționalitate. codul rearanjate, cu mai multe caracteristici, așa că am scurtat și devin mai ușor de utilizat.

Principala caracteristică nouă, care a marcat un semnal capcană și. La un moment dat, ca receptor de filare demon dreambox a decis să-l omoare și se oprește, astfel, procesul de monitorizare a mea, care, în sine, este momentul destul de neplăcut. Și eu nu pot să înțeleg ce se întâmplă ca locație pentru busteni este revoltător mic și am să fac scheme complicate cu acțiuni de rețea, care nu se ocupă. În linii: semnal de Common trap-a este o caracteristică plăcută de scripturi bash pentru a intercepta semnalele de la ieșirile sau cele transmise de kernel-o ucide să zicem 😉 și, prin urmare, putem preveni unele dintre evenimentele imediat următoare. Stoarceti că SIGKIL sau ucide -9 nu pot fi interceptate și prevenite, Acesta este proiectat în miez. Încetarea contractului trimis direct în jos PID. cod relevant acum

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

Prima noastră linie declară ce măsuri să ia și care semnalele puteți prinde mai alerta semnale de om În cazul mă 😉 mi aceste interese. Așa cum se vede duce la un funktsiika simplu care face ca mesajul de depanare și receptor repornire. Da, masa de prânz, care va conduce la rezultatul pe care mă aștept, pentru că eu cred că tot ceea ce împiedică este ucis cu ucide -9 dar nimic nu împiedică să încerce.

Cealaltă mare schimbare sunt funcțiile cele mai multe lucruri care sunt cod repetate le ambalate în funcții, a fost un pic, nu inestetice, acum este am avut 😉 DE o dramă ușoară în schimbul bash-și – Am pus întoarcerea într-o funcție și se așteaptă un comportament la fel ca toate celelalte limbaje de programare cunoscute mele, dar sa dovedit că întoarcerea returnează numai valori întregi și apoi în sus 2 😀 și am vrut să mă string înapoi. A existat o văgăuna urâtă. Soluția este simplă

#---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 cred, asta e partea interesantă a codului.

Vreau să-i mulțumesc inspirație 😉

http://www.youtube.com/watch?v = SilMJ0O13UI&feature = related

cele mai multe- În cele din urmă am fost în stare să termin munca la scenariu am scris atat de mult timp deja 🙂 nuki este unul script-ul destul de stabil. sublinia 1 deoarece eliminarea script-ul suplimentar l-am construit în principal. Ea a câștigat o structură monolitică, dar personal cred că este mai bine pentru o versiune demon 🙂 Deja îmbunătățiri nu sunt foarte, mai degrabă sunt remedieri pe unele bug-uri mici și încercări de îmbunătățire a codului. Singurul lucru tangibil, am adăugat un cec pentru uptime-și receptor. Setați-l pentru toată lumea 10 zile pentru a se face repornire.

Privind în urmă, ideea mea inițială pentru un script care pur și simplu să monitorizeze receptoarele ce sluchava ei cred, că am realizat idee fericit bună de multe ori. Singurul bug pe care sper să evite 10 repornire de zi cu zi este – există momente în care receptorul începe pentru a reporni, dar eșuează. Omorand cele mai multe ateliere de lucru, inclusiv de rețea, dar neuspyava repornire o mică. Din păcate, datorită limitărilor impuse de cutiile nemozhyah pentru a face este de a reporni kernel-ul și, astfel, a scăpat și acum. Poate că într-o zi, în viitor, va compila imaginea mea pentru cutiile sale și, astfel, în măsură să se ocupe de această problemă. De acum nadyavma ultima decizia mea de luciu peste 🙂 În caz contrar, orice altceva extrem de bine primit, chiar mult mai bine decât ideea mea originală. Mai ales că, Redenumiți-l în astfel de metamorfoze. Cea mai mare parte a ramas buggy interfeisa web, Prin urmare, continuă să nu dea 😆 o dată așezat să rescrie aceste zile îl va primi pentru consum gratuit. cuvinte finale – în loc de procrastinating Vreau doar să le mulțumesc tuturor prietenilor mei, care a îndurat întrebările mele stupide despre acest lucru și că – Ai o contribuție importantă în codul deizaina. Meritã apreciere și om care este numit proiectul meu și a servit ca sursă de inspirație pentru multe momente de scris 🙂 talent … Dame merita!

Azi am lucrat un pic mai sus noi NUKI versio. În cele din urmă a adus ordine şi, а ми се ще да я пооправя малко преди да пусна последната стабилна, şi, probabil, ultima versiune. Deci, am avut ideea de a verifica cate zile este uptime de gazdă, че повечето ми правят проблеми след като са били повечко време, aşa că am decis să fac 10 zile un restart de prfilaktičen. În grabă ridicat de mine pentru a şterge meu konveirče de zile rămase variabilelor pentru că rezultatul este destul de neplăcut uptime otkomandata la locul de muncă

# 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 a trăit până la o nuki 1.0 🙂 Ce versiune 0.6 am sărit de pe 1.0 mă întrebi pe mine, ei bine, foarte simplu – avem deja unul 100% НУКИ toate cerințele, cu mici excepții cotto va фиксна în viitor, și, mai important, în versiunea curentă a realizat în mod diferit. M-am întors în vechea ideea de demon și cu un pic de studiu și de eroare, acest material este dată totul a mers perfect. Cu server-side aplicație este a ta de a se bucura de complet cu excepția unei scurte php skriptche care derivă informații НУКИ-a 🙂

Deja a ajuns la aproape toate cu НУКИ, în cazul în care mai mult? Ei bine, de mine, am să fiu sincer mereu, poate și mai mult, de exemplu, de a gândi, de a face script-ul de instalare să zicem, de a face ceva la fel de ușor și ușor de înțeles chiar și pentru un utilizator de linux totul se întâmplă cu cea mai- mai puține probleme pentru utilizatorii. Dar toate la timpul lor. În prezent, în НУКИ printre altele, am добаваил modulul care monitorizează conexiunea cu serverul, dacă va dispărea repornit. În prezent, încă mai am, fără îndoială, a stabilit, pentru a vedea dacă funcționează хихихиихх 😆 Abe, de obicei, deși acest lucru este adevărat, există ceva de dorit sau de o idee proaspătă de la unele, totuși, un cap nu poate crede ca 2-3-4 sau mai mult, chiar a mea 😈

ps din Nou, lăsați sub numele de cod. Cred că am deja o fundație foarte solidă pentru tot ce mă hotărăsc, în viitor, de a face cu scenariul meu