Etwa ein halbes Jahr nach meinem letzten Ankündigung auf Traumbox sitestemata mir Überwachung kündigte ich eine neue und wahrscheinlich eine der letzten Versionen von Nuki. Версията беше готова още преди 2 aber wo Monaten Faulheit, wo für das Debuggen Dinge pozabaviha mit Ankündigung. Vor ein paar Tagen Arbeit 32 Dreambox 500-s und in der Regel sehr gute Ergebnisse. Die Änderungen sind sehr – wird aus dem idiotischen zvisimost entfernt linux Server von weitergegeben werden Protokolle – müssen nicht haben Apache + PHP, weil das neue Schreibsystemprotokolle werden Parameter an ein PHP-Skript-Server geliefert. Apart've änderte das Skript ohne Server-Seite zu arbeiten, – wenn Sie einige Satelliten-Receiver haben, ist nicht sinnvoll, Sie ständig einen Server, von dem zu nehmen info laufen, so kann es mit im Script hardkodnato behandelt werden 2 Variable Informationen über CAM-und. Ich habe auch erklärt, eine zusätzliche Variable debug – wenn Sie nicht wollen, werden nicht Protokolle werfen – wieder witless Pass als vor 🙂 Licht popraviki im Code waren napreveni, dass sah aus wie ein Dummkopf von semiliterate geschrieben (Ja, es gibt nicht, dass Dezember). Akute wir waren 2 Kritische Fehler im Code Einstellung der Arbeit am Drehbuch zu einem zufälligen Zeitpunkt führenden, oligofrenski wieder Auslassungen auf meinen Teil. Im allgemeinen Schreiben sehr war nicht einfach hatte zu prüfen, Menschen zu machen, dass Busybox und Asche sind nicht die einfachen Dinge für Zähmung. Dieses Mal kann ich große rant Code speichern und direkt zu erklären, was Variablen für das, was es ist, und welche Behandlungen können mit ihm getan werden (neu) 🙂

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

So offensichtlich Variablen Namen sprechen für sich genug noch und ich kann keine andere kluge Wort sagen.

EIGENSTÄNDIGEN Es ist eines der wichtigsten Variablen, wenn schließlich auf TRUE keine Anrufe an den Server und nicht mehr benötigt, auf dem Server je nachdem, ob Sie es verwenden Sie Werte auf der folgenden setzen müssen HCAM1 (Ich weiß nicht, warum ich genannt habe, damit ich jetzt nicht mehr erinnern, aber egal,). Wenn kein Wert drin ist und skritpa ein eigenständiges Skript akzeptiert, dass es auf unverschlüsselten Kanal arbeiten und nicht für Entschlüsselungsmodul geprüft, wenn Sie überprüfen, entsprechend der eingestellten Wertschätzung. HCAM2 Es ist optional, wenn Ihr Decodermodul nur verwendet 1 Prozess sagen CCcam Beispiel.

debuging zweite interessante Variable Informationen oder schweigt nach prlyue hängt davon ab, welchen Wert Sie stecken. Avotmatichno verläuft in einer ruhigen Schnitt, wenn EIGENSTÄNDIGEN Es ist wahr,

NEWDBGSTYLE Abfall ist wichtig promenliva. Es legt fest, wie der Server-Protokolle übertragen werden. Bei TRUE wird die neue Art und Weise sein, ohne idiostkata nach netcat. Wenn Sie immer noch Ihre alte Methode des Setzens FALSCH halten. Im Grunde das sind die Dinge, die zu konzentrieren brauchen, aber ich, Änderungen obwohl Kardinal wird eine Idee für eine transparente Satz Standardwerte bleiben 🙂

Auf jeden Fall bin ich sehr zufrieden, wie die Dinge waren – скрипта стана достатъчно гъвкав отпднаха идиотките зависимост на допълнителни файлове за функции както и вече отпдна и зависимост на nc мисля или пък нуждата от сървър и прочие не всеки ползва 30+ box-a че да има и сървър или пък може да има само някакъв домаше router. Все още има какво да се подобри но засега мисля да се въздържам от таквиа неща защото не е наложително 🙂

Файловете както обикновено се намират в директорията а крипта за въвеждане на логовете може да свалите от hier

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

zemanta ausgebaut.

Seit fast einem Jahr habe ich an meine democheto NUQUÍ. Heute hatte ich Zeit, um Dinge zu begradigen, weil es eine Menge Dinge, die nicht ganz gut waren. eine neue Funktion hinzugefügt. neu angeordneten Code, mit mehr Funktionen so verkürzt ich es und benutzerfreundlicher werden.

Die wichtigste Neuerung, die ein Signal erzielt Trap-und. An einem gewissen Punkt als Spinn Dämon Dreambox Empfänger beschlossen, ihn zu töten und somit Überwachungsprozess stoppt mein, was an sich ist recht unangenehm Moment. Und ich kann nicht verstehen, was geschieht, da die Lage für Protokolle unverschämt klein ist, und ich komplizierte Systeme mit Netzwerkfreigaben zu tun haben, die befassen sich nicht. In den Zeilen: Common Signal Trap-a ist eine angenehme Eigenschaft von Bash-Skripte Signale von den Ausgängen oder die vom Kernel-kill von etwa vorgelegt abfangen 😉 und so können wir einige der unmittelbar nachfolgenden Ereignisse verhindern. Squeeze einfach, dass SIGKIL oder töten -9 kann nicht abgefangen und verhindert werden, Es ist im Kern entworfen. Sie endet direkt PID herabgesandt. Jetzt einen entsprechenden Code

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

Unser erster Linie erklärt, welche Maßnahmen zu ergreifen, und welche Signale können Sie mehr Alarm fangen Mann Signale Im Fall 😉 mir diese interessieren mich. Wie zu einem einfachen funktsiika führen gesehen, die Debug-Meldung und Neustart Empfänger macht. Ja, es gibt Mittagessen, das wird zu dem Ergebnis führen, dass ich erwarte,, weil ich, dass alles denken, die mit kill wird behindert getötet -9 aber nichts hindert, zu versuchen.

Die andere große Veränderung sind die Funktionen, die meisten Dinge, die Code sie in Funktionen verpackt werden wiederholt, es war ein wenig unansehnlich nicht, jetzt ist die de 😉 ich ein mildes Drama im Gegenzug hatte bash-und – Ich habe Ihre Rückkehr in eine Funktion und erwarten Verhalten wie alle meine anderen bekannten Programmiersprachen, aber es stellte sich heraus, dass die Rückkehr nur ganzzahlige Werte zurückgibt und dann nach oben 2 😀 und ich String mir wollte zurück. Es war eine hässliche Höllenloch. Die Lösung ist einfach

#---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 denken, das ist der interessante Teil des Codes.

Ich möchte Inspiration danken 😉

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

am meisten- Schließlich war ich in der Lage Arbeit am Drehbuch zu beenden ich schon so viel Zeit schreiben 🙂 NUQUÍ es ist ein recht stabil Skript. betonen 1 weil das zusätzliche Skript zu entfernen Ich baute es in der Haupt. Es hat eine monolithische Struktur gewonnen, aber ich persönlich denke, es ist besser für einen Dämon Version 🙂 Bereits Verbesserungen sind nicht sehr, vielmehr sind Korrekturen auf einigen kleinen Bugs und versucht Code zu verbessern. Das einzige greifbare Sache, die ich habe einen Scheck für uptime-und hinzugefügt Receiver. Richten Sie es für jedermann 10 Tage, um sich Neustart.

Ein Blick zurück, meine erste Idee für ein Skript, das einfach Empfänger zu überwachen, was sie denken sluchava, dass ich merkte, glücklich gute Idee, viele Male. Der einzige Fehler, den ich hoffe, ein zu vermeiden 10 täglich Reboot – gibt es Momente, in denen der Empfänger beginnt erneut zu starten, aber nicht. Töten die meisten Werkstätten einschließlich Netzwerk, sondern neuspyava Reichweite Neustart. Leider wegen der durch meine Boxen auferlegten Beschränkungen nemozhyah zu tun ist, um den Kernel neu starten und so entkommen und jetzt. Vielleicht wird eines Tages in der Zukunft mein Bild für seine Boxen zusammenstellen und somit in der Lage, dieses Problem zu umgehen. Denn jetzt nadyavma meine Entscheidung zu beschönigen 🙂 Ansonsten alles andere extrem gut angenommen dauern, sogar viel besser als meine ursprüngliche Idee. Vor allem, da, Benennen Sie es in einer solchen Metamorphosen. Der größte Teil blieb Buggy Bahn interfeisa, daher auch weiterhin nicht einmal zu geben 😆 saß in diesen Tagen neu zu schreiben, wird ihm kostenlos Verbrauch bekommen. letzte Worte – statt zaudern nur möchte ich alle meine Freunde zu danken, dass ertrug meine dummen Fragen über dies und das – Sie haben einen wichtigen Beitrag in deizaina Code. Deserves Wertschätzung und ein Mann, der nicht genannt wird mein Projekt und diente als Inspiration für viele Momente der talentlosen Schreiben 🙂 … Dame verdient!

Heute habe ich ein wenig über neue Verse NUKI. Schließlich brachte Ordnung in ihr, а ми се ще да я пооправя малко преди да пусна последната стабилна, und wahrscheinlich endgültige Version. So hatte ich die Idee, wie viele Tage die Verfügbarkeit des Empfängers zu überprüfen, че повечето ми правят проблеми след като са били повечко време, so entschied ich mich in zu tun 10 prfilaktichen Tage ein Neustart. Ich kritzelte über konveirche, wo meine die Tage von anderen Variablen löscht, weil das Ergebnis otkomandata uptime ist ziemlich unangenehme Arbeit

# 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 lebte ihn dort zu sehen NUQUÍ 1.0 Warum 🙂 ab Version 0.6 Ich sprang aus dem 1.0 Sie werden mich fragen, aber sehr einfach – Wir haben bereits ein 100% universal NUKI alle Anforderungen abdeckt, mit wenigen Ausnahmen Cotto wird in Zukunft zu beheben und was noch wichtiger ist, diese Version in einer grundlegend anderen Weise umgesetzt. Ich ging zurück in meine alte Idee von einem Dämon und ein wenig Versuch und Irrtum diesmal Dinge gemeinsam ausgezeichnet. Server-Anwendung ist mit Ausnahme eines kurzen PHP skriptche vollständig entkernt, die Informationen zieht NUKI-it 🙂

E erreicht schon fast alles NUKI wo mehr? Nun co Um ehrlich zu sein habe ich immer vielleicht mehr, zum Beispiel auf das Installer-Skript zu tun, zu denken sagen Dinge irgendwie einfach und verständlich auch für Linux-User alles geschieht wie möglich zu tun- einige Probleme für die Nutzer. Aber alles hat seine Zeit. Derzeit in NUKI als alles, was ich dobavail Modul, das die Verbindung zum Server überwacht, verschwinden, wenn der Empfänger selbst neu startet. Im Moment ja, gibt es etablierte noch, ob es funktioniert hihihiihh 😆 Abe im Allgemeinen haben viangi etwas zu wünschen übrig, oder eine neue Idee von einigen immer noch ein Kopf Sie nicht denken kann, wie 2-3-4 oder mehr, sogar mein 😈

ps Wieder lassen Codenamen. Ich glaube, ich habe bereits eine sehr solide Basis für alles, was wir in der Zukunft entscheiden, mit meinem Skript zu tun