Circa un anno e mezzo dopo il mio ultimo annuncio sul Scatola dei sogni monitoraggio sitestemata me ho annunciato una nuova e probabilmente una delle ultime versioni di Nuki. La versione era pronto anche prima 2 ma dove mesi di pigrizia dove per le cose di debug pozabaviha con l'annuncio. A pochi giorni di lavoro 32 dreambox 500-s e generalmente molto buoni risultati. I cambiamenti sono molto – viene rimosso dal zvisimost demenziale Linux server i registri di essere passati – Non c'è bisogno di avere apache + PHP, perché il log nuovo sistema di scrittura viene fornita parametri a un server script php. Apart've cambiato lo script di lavorare senza lato server – se si dispone di alcuni ricevitori satellitari non è significativo per l'esecuzione costantemente un server da cui prendere informazioni in modo che possa essere affrontato nel hardkodnato sceneggiatura 2 informazioni variabili su CAM-e. Ho anche dichiarato di debug variabile aggiuntiva – se non si vuole non tirare i registri – passaggio di nuovo witless di prima 🙂 popraviki luce nel codice erano napreveni, che sembrava un imbecille scritto da semiliterate (Sì, non ci sono quel dicembre). Acuta siamo stati 2 errori critici nel codice che portano alla cessazione del lavoro sulla sceneggiatura a un certo momento casuale, oligofrenski nuovo omissioni da parte mia. In generale la scrittura non era molto semplicemente dovuto prendere in considerazione per rendere le persone, che busybox e cenere, non sono le cose facili per domare. Questa volta può salvare codice grande sfogo e direttamente per spiegare quali variabili per quello che è e ciò che i trattamenti può essere fatto con esso (nuovo) 🙂

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

Così, ovviamente Variabili nomi parlano da soli ancora abbastanza e non posso dire di un'altra parola intelligente.

INDIPENDENTE, AUTONOMO Si tratta di una delle variabili più importanti se finalmente a TRUE non farà le chiamate al server e non richiede più, a seconda del server se lo si utilizza bisogna mettere i valori sul seguente HCAM1 (Non so perché ho chiamato così non mi ricordo ora, ma non importa). Se non vi è alcun valore in esso e skritpa uno script standalone accetta che funzionerà sul canale in chiaro e non selezionato per il modulo di decodifica, se si controlla in base alla stima valore impostato. HCAM2 È facoltativo se il modulo decoder utilizza solo 1 processo dire CCcam esempio.

debuging seconda variabile interessante sarà prlyue informazioni o secondo in silenzio dipende da che valore si è bloccato. Avotmatichno passa in un taglio tranquillo se INDIPENDENTE, AUTONOMO E 'vero

NEWDBGSTYLE rifiuti è importante promenliva. Si definisce come sarà trasferito ai log del server. Se TRUE sarà il nuovo modo senza idiostkata secondo il netcat. Se ancora mantenere il vecchio metodo di mettere FALSE. Fondamentalmente queste sono le cose che hanno bisogno di concentrarsi, ma io, cambiamenti anche se cardinale rimarranno un'idea per set trasparente i valori di default 🙂

Sicuramente Sono molto contento di come le cose erano – lo script è diventato abbastanza idiota otpdnaha flessibile a seconda delle file aggiuntivi per le funzioni e già otpdna e dipendenza nc pensare o la necessità di server e quindi non tutti gode 30+ una scatola-che hanno anche server o può avere solo un router domestico. C'è ancora spazio per migliorare, ma per ora mi astengo dalle cose takvia perché è imperativo 🙂

I file come al solito sono in elenco e la cripta per l'introduzione di ceppi può essere scaricato dal qui

E se una buona sceneggiatura una pista accelerato per tutti gli acceleratori 😀

Arricchito da Zemanta

Per quasi un anno ho lavorato sul mio democheto NUCKY. Oggi ho avuto il tempo di raddrizzare le cose perché c'erano un sacco di cose che non erano abbastanza buoni. Aggiunta una nuova funzionalità. codice riarrangiato, con più funzioni così ho accorciato e diventare più user friendly.

La novità principale, che ha segnato un segnale di trap-e. Ad un certo punto come ricevitore filatura demone Dreambox deciso di ucciderlo e si ferma quindi il mio processo di monitoraggio, che di per sé è abbastanza sgradevole momento. E non riesco a capire cosa sta succedendo come la posizione per i log è scandalosamente piccolo e devo fare schemi complicati con condivisioni di rete che non riguardano. Nelle linee: segnale comune trappola-a è una caratteristica piacevole di script bash per intercettare segnali provenienti uscite o quelli presentati dal kernel-un'uccisione da dire 😉 e quindi siamo in grado di prevenire alcuni degli eventi immediatamente successivi. Basta spremere che SIGKIL o uccidere -9 non può essere intercettato e impedito, È stato progettato nel nucleo. Termina direttamente fatto scendere PID. Ora il codice corrispondente

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

La nostra prima linea dichiara quale azione intraprendere e quali segnali può prendere più attenti segnali uomo Nel caso mi 😉 questi mi interessano. Come si è visto portare a una semplice funktsiika che fa messaggio di debug e il ricevitore riavvio. Sì, c'è il pranzo, che porterà al risultato che mi aspetto, perché penso che tutto ciò che ostacola viene ucciso con kill -9 ma nulla impedisce di provare.

L'altro grande cambiamento sono le funzioni maggior parte delle cose che si ripetono codice loro confezionati in caratteristiche, era un po 'non sgradevoli, ora è il de 😉 ho avuto un dramma mite in cambio bash-e – Ho messo il ritorno in una funzione e aspetto che un comportamento come tutti i miei altri linguaggi di programmazione noti, ma si è scoperto che il ritorno restituisce solo valori interi e poi su 2 😀 e volevo stringa me indietro. C'è stato un brutto inferno. La soluzione è semplice

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

La prima parte è la fine della mia funzione ed echo il risultato dalla win. Il suo processo decisionale è semplice con l'ultima riga nel suddetto passaggio.

Hmmm pensare, questa è la parte interessante del codice.

Voglio ringraziare ispirazione 😉

http://www.youtube.com/watch?v = SilMJ0O13UI&caratteristica = correlati

Meglio- finalmente sono riuscito a completare il suo lavoro sulla sceneggiatura scrivo tanto tempo 🙂 Già NUCKY questo uno abbastanza stabile script. Sottolineo 1 perché rimuovere un ulteriore scenario, come costruire in base. Già acquisito una struttura monolitica, ma personalmente penso che sia un bene per la demo opzione 🙂 Già miglioramenti non molto, ultimamente фиксове diversi piccoli errori e tentativi di migliorare il codice. L'unico tangibile, che ho aggiunto i controlli di integrità e ricevitore. Нагласил io ogni 10 giorni, per fare un riavvio stesso.

Guardando indietro, la mia idea originale per uno script che semplicemente controllare i ricevitori, che случава con loro penso, che è abbastanza buono, ho messo la mia idea molte volte. L'unico errore che spero di evitare 10 ogni giorno il riavvio – ci sono momenti, quando il ricevitore inizia riavviato, ma non è possibile. Omicidi nella maggior parte dei negozi, tra cui rete, ma il palazzo del prado quasi completato raggiungere il riavvio. Purtroppo a Causa di limitazioni imposte le mie penne неможях per fare è riavviare il nucleo e, quindi, per ovviare a questo momento. Forse qualche giorno in futuro sarà ricompilare le mie immagini per la mia scatola, e, di conseguenza, sarà per me affrontare questo problema. Ha надявма la mia ultima decisione, per il suo silenzio 🙂 in Caso contrario, tutto il resto ha funzionato molto bene, anche molto meglio rispetto al mio primo progetto. Soprattutto se,, che преимана attraverso tali metamorfosi. La maggior parte è rimasta interfaccia web, ecco perché io continuo a non dargli 😆 dopo che ci siamo seduti, per riscrivere questi giorni, e ottenere gratuitamente consumo. Le parole finali – invece di estendere voglio solo ringraziare tutti i miei amici, che hanno sopportato le mie domande stupide, e questo – un importante contributo in деизаина codice. Ringraziamento e l'uomo, che è stato chiamato il progetto, e ho servito come fonte di ispirazione nella maggior parte dei momenti sprecata a scrivere 🙂 … Le signore lo meriti!

Oggi ho lavorato un po 'più di nuovi versi nuki. Infine ha portato per la sua, а ми се ще да я пооправя малко преди да пусна последната стабилна, e la versione probabilmente definitiva. Così ho avuto l'idea di controllare quanti giorni i tempi di attività del ricevitore, че повечето ми правят проблеми след като са били повечко време, così ho deciso di fare in 10 giorni prfilaktichen un riavvio. Ho scarabocchiato attraverso konveirche dove il mio cancella i giorni di altre variabili, perché il tempo di attività otkomandata risultato è abbastanza lavoro sgradevole

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

Ben che è accaduto ha NUCKY 1.0 🙂 Perché dalla versione 0.6 Ho saltato sul 1.0 Potete chiedere a me Beh molto semplice – Abbiamo già una 100% Universale che copre tutti i requisiti NUKI, con poche eccezioni come fiksna sarà in futuro e cosa ancora più importante questa versione è realizzata in modo radicalmente diverso. Sono tornato alla mia vecchia idea di un demone e una piccola prova ed errore questo tempo le cose funzionato abbastanza grande. L'applicazione server è completamente sventrato, oltre ad uno script php breve da cui trae la sua 🙂 di informazioni-NUKI

È già raggiunto quasi tutto con NUKI dove più? Beh ad essere onesti Co. sempre più e può, si consideri, ad esempio, per rendere lo script Installer da dire rendere le cose un po ' più facile e comprensibile anche per gli utenti Linux che non tutto succede come possibile- pochi problemi per l'utente. Ma per tutto c'è una stagione. Al momento il NUKI tra l'altro ho dobavail modulo che controlla la connessione al server, Se tu sparisci il riavvio del ricevitore. Per il momento che io non ho ancora stabilito se le opere hihihiihh 😆 Abe nel suo complesso avrà sempre un sacco a desiderare ancora o una fresca idea da alcuni tuttavia un capitolo non riesco a pensare come 2-3-4 o più, anche il mio 😈

PS ancora rilasciare codenamed. Penso di che avere già una base molto solida per tutti in futuro decidi di fare con il mio script