דף הבית » איך ל » כונן קשיח צג סקריפט עבור שרתים לינוקס בלי ראש

    כונן קשיח צג סקריפט עבור שרתים לינוקס בלי ראש

    כוננים קשיחים מודרניים יש מנגנון פנימי שנקרא S.M.A.R.T. שבאמצעותו ניתן לדעת מתי הדיסק הקשיח עומד להיכשל. האם זה לא יהיה נחמד של השרת לשלוח לך דוא"ל לפני כישלון כזה?

    סקירה כללית

    תוכניות כמו "mdadm" (עבור תוכנה RAID וניהול) ואת "כלי הדיסק Palimpsest" (בשימוש על אובונטו LiveCD), להשתמש במידע S.M.A.R.T להודיע ​​לך כאשר הדיסק עומד או נכשל. עם זאת על שרת ללא ראש (לא GUI) אין שירות אשר יודיע לך על האבדון ממתינים עד שיהיה מאוחר מדי. יתר על כן, איך אתה יודע על זה בלי להיכנס ידנית לשרת?

    סקריפט זה, כאשר לרוץ פעם ביום עם cron, יתריע אם כל הכוננים הקשיחים של המערכת סעיפים פגומים של המערכת הגיע למגבלה כי הוא בכוונה נמוך אז "הדיסק רע" סף, ולשלוח את האזהרה למנהל של המכונה.

    תנאים מוקדמים והנחות

    • יש לך כבר הגדרת דוא"ל תמיכה עבור השרת באמצעות "כיצד להגדיר התראות דוא"ל על לינוקס" מדריך.
    • אתה משתמש במערכת מבוססת דביאן.
    • אתה לא משתמש * חומרה RAID Controller.
    • תראו אותי משתמש ב- VIM כתוכנית העורך, זה רק בגלל שאני רגיל לזה ... אתה יכול להשתמש בכל עורך אחר שתרצה.

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

    להכין

    התקן את החבילה "smartmontools" אשר קוראת את המידע S.M.A.R.T מהבקר של הכונן הקשיח ומציגה לנו.

    כוננים sudo להתקין

    יצירת סקריפט הצג:

    sudo vim /root /smart-monitor.sh

    הפוך אותו לתוכן:

    #! / bin / bash
    ######## פונקציית אימייל ########
    email_admin_func ()

    הד "אל: [email protected]"> $ temp_email_file
    הד "מאת: [email protected]" >> $ temp_email_file
    הד "נושא: S.M.A.R.T לפקח סף פרץ" >> $ temp_email_file
    הד "" $ $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    הד "שלח דוא"ל למנהל המערכת"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -11

    ######## סוף הפונקציות ########

    ######## הגדרת פרמטר עבודה ########
    temp_email_file = / tmp / smart_monitor.txt
    allow_threshold = 5 #set את כמות סקטורים פגומים שלך מוכן לחיות עם, מומלץ 5.

    ########מנוע########
    אני ב sda sdb; לעשות # להוסיף או לחסר שמות דיסק מתוך רשימה זו המתאימה להתקנה שלך.
    אם [["" smartc_func $ i '"-ge $ allow_threshold]]; לאחר מכן
    הד שולח את מנהל המערכת
    email_admin_func "אחד מה- HDs ב-" hostname ", הגיע למגבלת הסף העליונה !!! n הסף נקבע ל: $ מותר_סף ומצב הדיסק $ i היה:" '' smartc_func $ i '""
    Fi
    בוצע

    נקודות המפתח לציין הן:

    • פונקציית דואר אלקטרוני - קבע את המידע המתאים כגון שם ההתקן ודוא"ל מנהל המערכת.
    • סף מותר - הגדרת פרמטר זה מה שאתה מרגיש מתאים, השתמשתי 5 כי להגביל את "כיתה שרת" כוננים קשיחים i'v בשימוש היה 10. (i'v מצא את סף "כיתה צרכן" כוננים כדי להיות גבוה כמו 140).
    • הגדר את ההתקנים שברצונך לפקח על-ידי התאמת ספירת שמות הדיסקים בלולאה "for". כרגע שני דיסקים (sda & sdb) כלולים, אז להתאים את ההתקנה. אתה יכול לכלול את כל הדיסקים שלך או רק כמה, אם אתה צריך * לא לכלול דיסק מסיבה כלשהי.

    * בהתקנה המקורית שלי הדיסק הראשון היה כונן הבזק כל כך לקרוא את המידע שלה, אם בכלל אפשרי לא הרבה.

    הפוך את קובץ ה- Script לזמין:

    sudo chmod + x /root /smart-monitor.sh

    ההתקנה נעשית.

    תזמן את התסריט להפעלה אוטומטית

    אנחנו רוצים להפוך את התסריט לפעול באופן אוטומטי כך נוכל ליצור עבודה Cron חדש עבור זה.
    כפי שצוין ב "כיצד להגדיר התראות דוא"ל על לינוקס" מדריך את התוצאה של עושה זאת, היא שאם התסריט עצמו נתקל בשגיאה, cron באופן אוטומטי להודיע ​​לנו בדוא"ל ברגע שזה קורה.

    פתח את מתזמן העבודה של cron:

    sudo crontab -e

    הוסף את זה לתוכן שלו:

    0 7 * * * /root /smart-monitor.sh> /tmp/last_smart_monitor_run.log

    זה יגדיר את הסקריפט להיות לרוץ בכל בוקר בשעה 07:00.


    כל המגזר שלך שייכים לנו :)