כחצי שנה לאחר ההכרזה האחרונה שלי על קופסת חלומות ניטור sitestemata אותי הודעתי חדש וכנראה אחת הגרסאות האחרונות של Nuki. Версията беше готова още преди 2 אבל איפה חודשים של עצלות שבו לדברי באגים pozabaviha עם הודעה. כמה ימים של עבודה 32 DreamBox 500-ים ובדרך כלל מאוד תוצאות טובות. השינויים הם מאוד – יוסר zvisimost אידיוטי לינוקס שרת להיות עברו בולי עץ – לא צריך Apache + php, משום יומני מערכת הכתב החדש הוא להיות מסופקים פרמטרים לשרת PHP סקריפט. Apart've שינה את הסקריפט לעבוד בלי בצד השרת – אם יש לך כמה מקלטי לווין הוא לא משמעותי לך כל הזמן להריץ שרת שממנו ניתן לקחת מידע, כך שהוא יכול לטפל בתסריט hardkodnato 2 מידע משתנה על CAM-ו. אני גם הכרזתי באגים משתנים נוספים – אם אתה לא רוצה לא העיף גזעים – מסירה טפשה שוב מבעבר popraviki 🙂 אור בקוד היה napreveni, שנראה כמו מטומטם נכתב על ידי המשכילה-למחצה (כן, יש לא באותו דצמבר). חריפה היינו 2 שגיאות קריטיות בקוד מוביל הפסקת העבודה על התסריט באיזשהו רגע אקראי, שוב oligofrenski השמטות מצידי. באופן כללי כתיבה לא היה פשוט מאוד צריך לשקול כדי לגרום לאנשים, busybox כי והאפר אינם דברים קלים לאילוף. הפעם אני יכול לשמור קוד בטרוף גדול ישירות להסביר מה משתנה עבור מה זה ומה טיפולים ניתן לעשות עם זה (חדש) 🙂

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

אז ברור שמות משתנה מדברות בעד עצמן מספיק עדיין ואני לא יכול להגיד שום מילה אחרת חכמה.

STANDALONE זהו אחד המשתנים החשובים ביותר אם בסופו של דבר ל- TRUE לא לבצע שיחות לשרת כבר לא דורש, תלוי בשרת אם אתה משתמש בו אתה צריך לשים ערכים על הנחות היסוד הבאות HCAM1 (אני לא יודע למה אני שם את זה אז אני לא זוכר עכשיו אבל לא משנה). אם אין ערך בה skritpa תסריט עצמאי מקבל שזה יעבוד בערוץ מוצפן ולא בדק עבור מודול פענוח, אם תבדוק בהתאם להערכת שווי הסט. HCAM2 זה לא חובה אם מודול המפענח שלך משתמש רק 1 תהליך אומר CCcam לדוגמה.

DEBUGING השני משתנה מעניין יהיה prlyue מידע או על פי שותק תלוי הערך מה אתה תקוע. Avotmatichno עובר קיצוץ שקט אם STANDALONE זה נכון

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

Определено вече съм много доволен как се получиха нещатаскрипта стана достатъчно гъвкав отпднаха идиотките зависимост на допълнителни файлове за функции както и вече отпдна и зависимост на nc мисля или пък нуждата от сървър и прочие не всеки ползва 30+ box-a че да има и сървър или пък може да има само някакъв домаше router. Все още има какво да се подобри но засега мисля да се въздържам от таквиа неща защото не е наложително 🙂

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

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

משופר על ידי Zemanta

במשך קרוב לשנה עבדתי על democheto שלי נוקה. היום לא היה לי זמן לסדר את העניינים כי היו הרבה דברים שלא היו די טוב. נוסף פונקציונלי חדש. קוד משוחלפים, עם תכונות נוספות כדי קצרתי אותו ולהיות יותר ידידותי למשתמש.

התכונה החדשה העיקרית אשר הבקיעה אות מלכודת-ו. בשלב מסוים ככונס ספינינג שד DreamBox החליט להרוג אותו ובכך עוצר תהליך ניטור שלי, אשר כשלעצמו הוא די רגע לא נעים. ואני לא יכול להבין מה קורה כמיקום עבור יומנים קטן שערורייתי ולעשות מה שאני צריך לעשות תכניות מסובכות עם מניות רשת אשר אינו עוסקות. בשורות: מלכודת האות המשותף היא תכונה נעימה של סקריפטים bash ליירט אותות פלטי או אלה שהגישו kernel-הריגה על ידי נגיד 😉 וכך נוכל למנוע חלק מן האירועים שהתרחשו לאחר מכן מיד. רק לסחוט כי SIGKIL או להרוג -9 לא ניתן ליירט ומנע, הוא מעוצב הליבה. תסתיים ישירות שנשלח לאגף PID. עכשיו קוד רלוונטי

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

השורה הראשונה שלנו מכריזה באיזו פעולה לנקוט ואשר אותות יכולה לתפוס אותך יותר ערני אותות גבר במקרה 😉 לי עניין אלה לי. כפי שניתן לראות להוביל funktsiika פשוט שעושה הודעת באגים ומקלט מחדש. כן, יש ארוחת צהריים, שיוביל לתוצאה שאני מצפה, כי אני חושב שכל מה מעכב הוא נהרג עם kill -9 אבל שום דבר לא מונע לנסות.

השינוי הגדול השני הם הפונקציות רוב הדברים חוזרים על עצמם קוד אותם ארוזים תכונות, זה היה קצת מכוער לא, עכשיו זה דה 😉 היה לי דרמה קלה בתמורה bash-ו – שמתי את החזר בתפקוד אחד ומצפה התנהגות כמו בכל שפות תכנה הידועות האחרות שלי, אך התברר כי בתמורה מחזירה רק ערכים שלמים ואז למעלה 2 😀 ורציתי מחרוזת אותי בחזרה. היה בחור נידח מכוער. הפתרון הוא פשוט

#---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 изплювам резултата. Взимането му е елементарно с последния ред в горния пасаж.

המממ חושב, זה החלק המעניין של הקוד.

אני רוצה להודות השראה 😉

http://www.youtube.com/watch?v = SilMJ0O13UI&feature = נלווה

יותר טוב- סוף סוף הצלחתי להשלים את העבודה על התסריט שאני כותב כל כך הרבה זמן 🙂 כבר נוקה זה אחד די יציבה התסריט. מתח 1 כי הם להסיר נוספים התסריט, איך לבנות את זה העיקרי,. כבר רכשה מבנה מונוליטי, אבל באופן אישי, אני חושב שזה טוב עבור גרסת הדגמה 🙂 כבר שיפורים הם לא מאוד, לאחרונה pixovi שונים קטין באגים, ניסיונות לשפר את הקוד.. רק מוחשי הוספתי בדיקה ומקלט. Naglasi אני עושה את זה כל 10 ימים האם להפעיל מחדש את עצמו.

במבט לאחור, הרעיון הראשוני עבור תסריט זה פשוט לשלוט מקלטי זה slucuva עם אותם אני חושב, וזה די טוב, אני מיושם הרעיון שלך הרבה פעמים.. הטעות היחידה שאני מקווה להימנע 10 יומי אתחול מחדש – יש פעמים כאשר המקלט מתחיל מחדש, אבל נכשל. רציחות ברוב חנויות, כולל רשת, אבל פרדו ארמון כמעט הושלמה להשיג אתחול מחדש. למרבה הצער, בשל מגבלות שהוטלו על ידי העטים שלי nemaiah לעשות הוא לאתחל - ובכך לעקוף את הרגע. אולי מתישהו בעתיד יהיה להדר מחדש את התמונה על הקופסה שלי, לכן אני להתמודד עם בעיה זו. הוא nagamma את ההחלטה האחרונה שקט 🙂 אחרת, הכל היה טוב מאוד, אפילו הרבה יותר טוב מאשר הרעיון הראשון שלי. במיוחד כאשר, זה preiman דרך כזה שינוי צורה.. את חלק גדול נשאר ממשק אינטרנט, לכן אני ממשיך לא לתת לו 😆 לאחר ישבנו לכתוב בימים אלה, לקבל את זה בחינם צריכת. מילים אחרונות – במקום להאריך רק רוצה להודות לכל החברים שלי, שרד את שאלות מטופשות, וזה – יש תרומה חשובה desain קוד. תודה גבר, זה היה פרויקט, ואני שימש השראה ברוב דברים בינוניים כותב 🙂 … בנות זה מגיע!

היום עבדתי קצת על פסוקים חדשים NUKI. לבסוף הביא כדי לה, а ми се ще да я пооправя малко преди да пусна последната стабилна, גרסה סופית וכנראה. אז היה לי רעיון לבדוק uptime כמה ימים של כונס נכסים, че повечето ми правят проблеми след като са били повечко време, אז החלטתי לעשות 10 ימי prfilaktichen אתחול מחדש. ואני שרבטתי konveirche איפה שלי מנקה בימים של משתנים אחרים משום uptime תוצאת otkomandata די עבודה נעימה

# 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 זכה לראות אותו שם נוקה 1.0 למה 🙂 מגירסה 0.6 קפצתי 1.0 תוכל לשאול אותי אבל מאוד פשוט – כבר יש לנו אחד 100% אוניברסלי NUKI מכסה את כל הדרישות, עם כמה יוצא מן הכלל קוטו יתקן בעתיד ויותר מכך בגרסה זו מיושמת בצורה שונה במהותו. חזרתי לרעיון הישן שלי של שד ומשפט מעט וטעייה הפעם דברים חבריו מעולים. יישום שרת הוא הרוס לחלוטין למעט skriptche php קצר שואב מידע NUKI-זה 🙂

E כבר השיג כמעט הכל NUKI שם יותר? ובכן לשתף למען האמת תמיד אני אולי יותר, למשל חושב לעשות על התסריט המתקין אומר לעשות דברים איכשהו קל ומובן אפילו הכל משתמש לינוקס קורה ככל האפשר- בעיות כמה למשתמשים. אבל לכל דבר יש את הזמן. כרגע NUKI מכל דבר שאני dobavail מודול המנטרת את החיבור לשרת, נעלם אם המקלט עצמו מפעיל מחדש. לרגע כן, יש מוקמות עדיין אם זה עובד hihihiihh 😆 אייב כלל viangi יצטרך משהו כדי להיות רצוי, או רעיון טרי עדיין כמה ראש אחד אתה לא יכול לחשוב כמו 2-3-4 או יותר, אפילו 😈 שלי

נ.ב. שוב תנו שם קוד. אני חושב שכבר יש לי בסיס מוצק מאוד לכל דבר נחליט בעתיד לעשות עם התסריט שלי