Ongeveer een half jaar na mijn laatste aankondiging op Droom doos bewaken sitestemata me Ik kondigde een nieuwe en waarschijnlijk een van de laatste versies van Nuki. Версията беше готова още преди 2 maar waar maanden van luiheid, waar voor het debuggen dingen pozabaviha met de aankondiging. Een paar dagen van het werk 32 dreambox 500-s en over het algemeen zeer goede resultaten. De veranderingen zijn erg – wordt verwijderd uit de idiote zvisimost Linux server worden doorgegeven logs – Geen behoefte om apache hebben + php, omdat het nieuwe schrift logs wordt geleverd parameters om een ​​php-script server. Apart've veranderde het script te werken zonder server side – als je wat satellietontvangers is niet zinvol om je constant een server om info te nemen draaien zodat het kan worden behandeld in het script hardkodnato 2 variabele informatie over CAM-en. Ik heb ook verklaard een extra variabele debug – als je niet wilt dat niet zal gooien logs – weer witless pas dan voorheen 🙂 Licht popraviki in de code waren napreveni, die eruit zag als een imbeciel geschreven door semiliterate (Ja, er zijn niet zo december). Acute we waren 2 Kritieke fouten in de code leidt tot beëindiging van het werk aan het script op een willekeurig moment dat, weer oligofrenski nalatigheden van mijn kant. Over het algemeen het schrijven was niet heel eenvoudig moest overwegen om mensen, dat busybox en as zijn niet de eenvoudige dingen te temmen. Deze keer heb ik kan grote rant code op te slaan en direct uit te leggen wat variabelen voor wat het is en welke behandelingen kunnen worden gedaan met het (nieuw) 🙂

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

Zo duidelijk Variabelen namen nog niet genoeg spreken voor zich en ik kan niet zeggen dat elke andere slimme woord.

STANDALONE Het is een van de belangrijkste variabelen als uiteindelijk tot TRUE zal niet oproepen naar de server te maken en niet langer vereist, afhankelijk van de server als je het gebruikt moet u waarden op de volgende zet HCAM1 (Ik weet niet waarom ik genoemd heb, dus ik nu niet herinneren, maar het maakt niet uit). Als er geen waarde in en skritpa een standalone script aanvaardt dat het zal werken op niet-versleuteld kanaal en niet gecontroleerd op decryptie module, Indien u op basis van de ingestelde waarde schatten. HCAM2 Het is optioneel indien uw decoder module alleen gebruikt 1 proces zeggen CCcam voorbeeld.

debugging tweede interessante variabele informatie of stille volgens prlyue afhankelijk van welke waarde je vastzit. Avotmatichno passeert in een rustige cut als STANDALONE is TRUE

NEWDBGSTYLE afval is belangrijk promenliva. Het bepaalt hoe zal worden overgedragen aan de server logs. Als dat waar de nieuwe weg zal worden zonder idiostkata volgens netcat. Als u nog steeds houden uw oude methode van zetten VALSE. In principe zijn dit de dingen die moeten richten, maar ik, veranderingen hoewel kardinaal zal een idee voor transparante set standaardwaarden blijven 🙂

Zeker Ik ben erg blij met hoe dingen waren – скрипта стана достатъчно гъвкав отпднаха идиотките зависимост на допълнителни файлове за функции както и вече отпдна и зависимост на nc мисля или пък нуждата от сървър и прочие не всеки ползва 30+ box-a че да има и сървър или пък може да има само някакъв домаше router. Все още има какво да се подобри но засега мисля да се въздържам от таквиа неща защото не е наложително 🙂

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

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

Versterkt door Zemanta

Voor bijna een jaar was ik bezig met mijn democheto Nuki. Vandaag had ik tijd om dingen recht, want er waren een heleboel dingen die niet helemaal goed waren. Voegde een nieuwe functionaliteit. herschikte code, met meer functies, dus ik ingekort en meer gebruiksvriendelijke.

De belangrijkste nieuwe functie die scoorde een signaal trap-en. Op een gegeven moment als spinning demon Dreambox ontvanger besloten om hem te doden en dus stopt controleproces mijn, wat op zich heel onaangenaam geduld. En ik kan niet begrijpen wat er gebeurt als de locatie voor de logs is waanzinnig klein en moet ik ingewikkelde regelingen met het netwerk van aandelen die niet gaan doen. In lijnen: Common signaal trap-a is een prettige eigenschap van bash scripts om signalen van uitgangen of die door de kernel-a kill ingediend door inspraak 😉 onderscheppen en zo kunnen we een aantal van de direct daaropvolgende gebeurtenissen te voorkomen. knijp enkel dat SIGKIL of te doden -9 kan niet worden onderschept en voorkomen, Het is ontworpen in de kern. Het beëindigt rechtstreeks naar beneden PID. Nu desbetreffende 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
}

Onze eerste lijn verklaart welke actie te nemen en welke signalen je kunt vangen alerter man signalen In het geval 😉 mij deze interest me. Zoals te zien leiden tot een eenvoudige funktsiika dat debug boodschap en herstart ontvanger maakt. Ja, er lunch, dat zal leiden tot het resultaat dat ik verwacht, omdat ik denk dat alles wat belemmert wordt gedood met doden -9 maar niets belet om te proberen.

De andere grote verandering zijn de functies van de meeste dingen die worden herhaald code laten verpakken in functies, het was een beetje lelijk niet, nu is het de 😉 Ik had een milde drama in ruil bash-en – Ik heb uw terugkeer in één functie en verwachten gedrag net als al mijn andere bekende programmeertalen, maar het bleek dat slechts toereikend gehele waarden en dan terug 2 😀 en ik wilde naar een string me terug. Er was een lelijke hel. De oplossing is eenvoudig

#---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 denkt, dat is het interessante deel van de code.

Ik wil inspiratie bedanken 😉

http://www.YouTube.com/watch?v = SilMJ0O13UI&feature = gerelateerde

De meeste- Ik eindelijk in geslaagd zijn werk op het script dat ik schrijf zoveel tijd al 🙂 te voltooien Nuki is een zeer stabiel script. Ik benadrukken 1 omdat ik nam het alternatieve script zoals ik het in grote lijnen hebt geplant. Reeds opgedane monolithische structuur, maar persoonlijk denk ik dat het beter voor een demon versie 🙂 is nu verbeteringen niet vrij zijn, meer fiksove van diverse bugs en kleine pogingen ter verbetering van de code. Het alleen tastbare wat dat ik toevoegen controleert uptime-ontvanger. Ik zet deze dan op elke 10 dagen te doen alleen opnieuw.

Als ik terugkijk, en mijn oorspronkelijke idee voor een script dat gewoon controleren ontvangers wat er gebeurt met hen denk ik, dat ik goed genoeg idee ben gerealiseerd veel veelvouden. Het enige insect dat ik hoop om te voorkomen dat met 10 dagelijkse reboot is – Er zijn momenten waarop de ontvanger begint te rebooten, maar mislukt. Doodt garages meest met inbegrip van het netwerk maar niet kunnen bereiken van het resetten. Helaas vanwege de beperkingen opgelegd door nemožâh mijn dozen te doen van het opnieuw opstarten van de kern en daarmee te voorkomen dat dit moment. Misschien je een dag in de toekomst zul dus te kunnen omgaan met dit probleem te compileren mijn eigen beeld voor pennen. Nadâvma voor mijn definitieve beslissing wil verdoezelen het 🙂 of iets anders krijgen zeer goed, zelfs veel beter dan mijn oorspronkelijke bedoeling. Vooral in een situatie, dat preimana door zo metamorfosen. Het webonderdeel b″gavata verblijf interfeisa, dat is waarom ik blijf niet om het te geven 😆 sinds zat te herschrijven in de komende paar dagen hem zal krijgen voor gratis consumptie. Laatste woorden – in plaats van niet die ik wil bedanken al mijn vrienden, Ik verdroeg mijn domme vragen over dit en dat – u hebt een belangrijke bijdrage aan de deizaina van het Wetboek. Waardering van de menselijke waarde en die project heet en heeft gediend als mijn inspiratie in meeste momenten van saaie schrijven 🙂 … Geef je verdient het!

Vandaag werkte ik een beetje meer nieuwe gedichten NUKA. Eindelijk dokuro draai het, а ми се ще да я пооправя малко преди да пусна последната стабилна, waarschijnlijk de definitieve versie. Schijven, had ik het idee om te controleren hoeveel dagen van de goede werking van de ontvanger in, че повечето ми правят проблеми след като са били повечко време, Ik besloot om te doen in 10 dagen profilactice opnieuw. Haastig Scrabble conveince, waar ik werd ontruimd dagen van de rest, omdat de uitkomst variabelen otkomandata doorgebracht op de site, is heel prettig om te werken

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

Nou die het is gebeurd heeft Nuki 1.0 🙂 Waarom van versie 0.6 Ik sprong uit de 1.0 vraagt u me goed zeer eenvoudig – We hebben al een 100% Universele die betrekking hebben op alle eisen NUKI, met een paar uitzonderingen zoals fiksna zal in de toekomst en wat nog belangrijker is deze versie wordt gerealiseerd op een radicaal andere manier. Ik ging terug naar mijn oude idee van een demon en een beetje trial and error dit tijd dingen vrij groot uitgewerkt. De servertoepassing is volledig ingewanden, afgezien van een korte php script waaruit het haalt zijn informatie-NUKI-🙂

Is bijna alles met NUKI al bereikt waar meer? Nou om eerlijk co. altijd kan en meer, overwegen, bijvoorbeeld om te maken van de installatie script wil om dingen te maken iets meer eenvoudig en begrijpelijk zelfs voor linuxgebruiker die niet alles mogelijk gebeurt- een paar problemen aan de gebruiker. Maar voor alles is er een seizoen. Op het moment de NUKI afgezien van iets anders ik dobavail module die de verbinding met de server controleert, Als je de ontvanger opnieuw wordt opgestart verdwijnen. Voor het moment dat ik nog niet nog bepaald of de werken hihihiihh 😆 Abe als geheel zal altijd een veel te wensen nog of hebt een vers idee van enkele echter denken niet één hoofdstuk zoals 2-3-4 of meer, zelfs mijn 😈

PS Again release met codenaam. Ik denk dat ik heb al een zeer solide basis voor al die u in de toekomst wilt doen met mijn script