Około pół roku po moim ostatnim ogłoszeniu o Dreambox monitorowanie sitestemata mnie ogłosił nowy i prawdopodobnie jedną z ostatnich wersji Nuki. Версията беше готова още преди 2 ale gdzie miesiąc lenistwa, gdzie rzeczy debugowania pozabaviha z ogłoszeniem. Kilka dni pracy 32 dreambox 500-s i ogólnie bardzo dobre wyniki. Zmiany te są bardzo – usuwa się z idiotycznej zvisimost linux. serwer jej podjęcia dzienniki – Nie trzeba mieć apache + pzp, ponieważ nowy system zapisu logów jest dostarczane do serwera parametry skryptu php. Apart've zmienił skrypt do pracy bez stronie serwera – jeśli masz jakieś odbiorniki satelitarne nie ma sensu ciągle uruchomić serwer, z którego można wziąć informacje więc może być rozpatrywane w hardkodnato skryptu 2 Zmienna informacji o CAM-a. Mam również uznany za dodatkową zmienną debug – Jeśli nie chcesz, nie rzucając kłody – ponownie witless wprost niż wcześniej 🙂 Światło popraviki w kodzie były napreveni, który wyglądał jak imbecile napisany przez semiliterate (Tak, że nie są tak grudnia). Ostra byliśmy 2 Krytyczne błędy w kodzie prowadzące do zaprzestania prac nad scenariuszem w pewnym losowym momencie, ponownie oligofrenski przeoczeń z mojej strony. Ogólnie pisząc nie był bardzo prosty musiał rozważyć, aby ludzie, BusyBox i popiół, które nie są proste rzeczy do oswajania. Tym razem mogę zaoszczędzić duże kod rant i jest bezpośrednio wyjaśnić, co zmienne, co to jest i jakie zabiegi można z nim zrobić (nowy) 🙂

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

Tak oczywiście Zmienne nazwy mówią same za siebie jeszcze wystarczająco i nie mogę powiedzieć żadnego innego mądrego słowa.

SAMODZIELNY Jest to jedna z najważniejszych zmiennych, czy wreszcie na true nie będzie wykonywanie połączeń do serwera i nie wymaga już, w zależności od serwera, jeśli używasz go trzeba umieścić wartości na następujących HCAM1 (Nie wiem, dlaczego nazwali więc nie pamiętam teraz, ale nie ważne). Jeśli nie ma wartości w nim i skritpa samodzielny skrypt przyjmuje, że będzie działać na niezaszyfrowanej kanału i nie sprawdzone modułu deszyfrowania, sprawdzając według szacunków wartości zadanej. HCAM2 Jest to nieobowiązkowe, jeśli moduł dekoder używa tylko 1 Proces mówią przykład CCcam.

debuging Drugi interesujący zmienna będzie prlyue informacji lub cichą Według zależy jaką wartość utkniesz. Avotmatichno przechodzi w cichej cięcia, jeżeli SAMODZIELNY Prawdą jest,

NEWDBGSTYLE трата важна променлива. Тя определя как ще се прехвърлят логовете към сървъра. Ако е TRUE ще е по новия начин без идиостката зависимост от netcat. Ако все пак си държите на стария метод слагате FALSE. В общи линии това са нещата на които трябва да наблегнете но мисля, че промените въпреки че са кардинални ще останат една идея прозрачни заради зададените стойности по подразбиране 🙂

Определено вече съм много доволен как се получиха нещата – Skrypt został wystarczająco elastyczne otpdnaha idiotą zależności od dodatkowych plikach dla funkcji a już otpdna i uzależnienie nc myśleć i zapotrzebowanie na serwerze, a więc nie każdy lubi 30+ box-a który ma lub może mieć serwer tylko router domowy. Jest jeszcze wiele do poprawy, ale teraz myślę, że będę powstrzymywać się od rzeczy takvia, ponieważ konieczne jest 🙂

Pliki, jak zwykle w katalog а крипта за въвеждане на логовете може да свалите от tutaj

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

Wzmocnione przez Zemanta

Przez prawie rok pracowałem na moim democheto nuki. Dziś miałem czasu, aby wyprostować rzeczy, ponieważ było wiele rzeczy, które nie były dość dobre. Dodano nową funkcjonalność. Kod uporządkowane, więcej funkcji więc skrócona i stać się bardziej przyjazny dla użytkownika.

Główną nowością, która trafia sygnał trap-a. W pewnym momencie jako odbiornik Dreambox przędzenia demon postanowił go zabić, a więc zatrzymuje proces monitoruje mój, co samo w sobie jest dość przykry moment. I nie mogę zrozumieć, co się dzieje, ponieważ lokalizacja dzienników jest skandalicznie małe i muszę robić skomplikowanych schematów z udziałów sieciowych, które nie dotyczą. W liniach: wspólny sygnał trap-a jest przyjemna cecha skrypty bash do przechwytywania sygnałów z wyjść lub tych, przedłożony przez kernel-odstrzału przez Say 😉 a tym samym możemy zapobiec niektóre natychmiast późniejszych wydarzeń. Wystarczy wycisnąć że SIGKIL lub zabić -9 nie mogą zostać przechwycone i uniemożliwił, Został on zaprojektowany w rdzeniu. Kończy się bezpośrednio zesłał PID. Teraz odpowiedni kod

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

Nasza pierwsza linia deklaruje, jakie działania należy podjąć i jakie sygnały mogą złapać większą alert sygnały mężczyzna W przypadku 😉 mi te interesują mnie. Jak widać prowadzą do prostego funktsiika sprawia, że ​​wiadomość debugowania i odbiornik restartu. Tak, obiad, które doprowadzą do rozstrzygnięcia że oczekuję, bo myślę, że wszystko, co utrudnia ginie kill -9 ale nic nie przeszkadza, aby spróbować.

Inne duże zmiany są funkcje większości rzeczy, które są powtarzane kod je zapakowane w funkcji, to było trochę nie nieestetyczne, teraz jest de 😉 miałem łagodne dramat w zamian bash-a – Włożyłem zwrot w jednej funkcji i oczekiwać podobnego zachowania wszystkich moich innych znanych języków programowania, ale okazało się, że powrót zwraca tylko wartości całkowite, a następnie w górę 2 😀 i chciałem ciąg Me Back. Był brzydki Hellhole. Rozwiązanie to jest proste

#---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 myślę, że to interesująca część kodu.

Chcę podziękować inspiracji 😉

http://www.youtube. com / zegarek?v = SilMJ0O13UI&feature = pokrewne

Większość- I wreszcie udało się zakończyć prace nad scenariuszem piszę już tyle czasu 🙂 nuki jest jeden dość stabilny skrypt. podkreślać 1 ponieważ usunięcie dodatkowego skryptu gdyż wbudowane w główne. Zyskała monolityczną strukturę, ale osobiście uważam, że lepiej jest dla wersji demon 🙂 Już ulepszenia nie są zbyt, raczej są poprawki dotyczące niektórych drobnych błędów i prób mających na celu poprawę kodu. Jedyną rzeczą namacalny Dodałem zameldowania przestojów i odbiornik. Ustawić go każdy 10 dzień, aby sam restart.

Patrząc wstecz, mój początkowy pomysł na scenariusz, że po prostu monitorować odbiorników co sluchava im myśleć, Zdałem sobie sprawę, że lepszym pomysłem szczęśliwie wielokrotnie. Jedyny błąd, który mam nadzieję uniknąć 10 codziennie jest restart – są chwile, w których odbiornik zaczyna zrestartować, ale nie. Zabijając większość warsztatów w tym sieci, ale neuspyava zasięgu restartu. Niestety, z powodu ograniczeń nałożonych przez moich skrzynek nemozhyah do zrobienia jest ponowne uruchomienie jądra, a tym samym uniknąć tej chwili. Może kiedyś w przyszłości będzie skompilować mój obraz do swoich skrzynek, a tym samym w stanie poradzić sobie z tym problemem. Na razie nadyavma trwać moją decyzję Gloss nad 🙂 przeciwnym razie wszystko bardzo dobrze przyjęty, nawet dużo lepiej niż mój oryginalny pomysł. zwłaszcza, że, Przemianować go w takich metamorfoz. Większość część buggy przebywał internetowej interfeisa, więc nadal nie dać 😆 raz usiadł przepisać te dni dostanie go za darmo konsumpcji. końcowe słowa – zamiast zwlekać prostu chcę podziękować wszystkim moim znajomym, że znosił moje głupie pytania o to i owo – mają istotny wkład w deizaina kodu. Zasługuje na uznanie i człowieka, który jest nazwany moim projektem i służył jako inspiracja do wielu momentach talentu pisania 🙂 … Dame to zasługują!

Dzisiaj pracowałem trochę nad nowymi wersów Nuki. W końcu przyniósł rozkaz do niej, а ми се ще да я пооправя малко преди да пусна последната стабилна, i prawdopodobnie ostateczna wersja. Miałem więc na pomysł, aby sprawdzić, ile dni uptime odbiornika, че повечето ми правят проблеми след като са били повечко време, więc postanowiłem zrobić w 10 prfilaktichen dni restarcie. I wypisali całej konveirche gdzie mój czyści dni pozostałych zmiennych, ponieważ wynik otkomandata uptime jest dość nieprzyjemna praca

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

Ma dobrze, to się stało nuki 1.0 🙂 Dlaczego od wersji 0.6 Skoczyłem z 1.0 zapyta mnie również bardzo proste – Mamy już jeden 100% Uniwersalny, obejmującą wszystkie wymagania NUKI, z kilkoma wyjątkami, jak fiksna będzie w przyszłości i co ważniejsze tej wersji realizuje się w zupełnie inny sposób. Wróciłem do mojego stary pomysł demona i trochę prób i błędów to rzeczy czas pracował bardzo wielkim. Serwer aplikacji jest w pełni obezwładniały, oprócz skrypt php krótki, z którego czerpie on jej 🙂 informacje NUKI

Jest już osiągnięte prawie wszystko z NUKI, gdzie więcej? Dobrze być szczery co. zawsze można i więcej, Rozważmy, na przykład, aby skrypt Instalatora, aby powiedzieć do rzeczy nieco bardziej proste i zrozumiałe nawet dla użytkowników Linuksa, które nie wszystko dzieje się jak to możliwe- kilka problemów do użytkownika. Ale na wszystko jest sezon. W tym czasie NUKI oprócz cokolwiek innego I moduł dobavail, który monitoruje połączenia z serwerem, Jeśli znikają ponownym uruchomieniu odbiornika. Na razie jeszcze nie ustalona, czy prace hihihiihh 😆 Abe jako całość zawsze mają dużo do życzenia nadal lub świeży pomysł z niektórych jednak jeden rozdział nie myśleć jak 2-3-4 lub więcej, nawet mój 😈

PS jeszcze raz publikacji o nazwie kodowej. Myślę, że już mają bardzo solidną podstawę dla wszystkich, którym w przyszłości zdecydujesz się zrobić z mojego skryptu