לפני זמן מה קראתי שאחד המאפיינים המייחדים של מנהל / מהנדס מערכת יעיל הוא עצלות. בהתחלה זה נראה קצת סותר אבל המחבר הסביר מדוע:
אם sysadmin מבלה את רוב זמנו בפתרון בעיות וביצוע משימות שחוזרות על עצמן, אתה יכול לחשוד שהוא או היא לא עושים דברים כמו שצריך. במילים אחרות, מנהל / מהנדס מערכת יעיל צריך לפתח תוכנית לביצוע משימות שחוזרות על עצמן עם פחות פעולות מצידו, ואפשר לחזות בעיות באמצעות,
למשל, הכלים שנסקרו בחלק 3 - עקוב אחר דוחות פעילות המערכת באמצעות מערכות כלים של Linux של הסדרה הזו. לכן, למרות שנראה שהוא לא עושה הרבה, זה בגלל שרוב האחריות שלו היא טופלו בעזרת סקריפטים של קליפות, ועל זה נדבר על זה הדרכה.
בכמה מילים, סקריפט מעטפת הוא לא יותר ולא פחות מתוכנית המבוצעת שלב אחר שלב על ידי קליפה, שהיא תוכנה נוספת המספקת שכבת ממשק בין ליבת לינוקס לקצה מִשׁתַמֵשׁ.
כברירת מחדל, המעטפת המשמשת לחשבונות משתמשים ב- RHEL 7 הוא באש (/bin/bash). אם אתה רוצה תיאור מפורט ורקע היסטורי כלשהו, אתה יכול להתייחס אליו מאמר זה בויקיפדיה.
למידע נוסף על מערך התכונות העצום שמספקת מעטפת זו, מומלץ לבדוק את התכונות שלה
דף גבר, שהורד בפורמט PDF בכתובת (פקודות Bash). מלבד זאת, ההנחה היא שאתה מכיר פקודות לינוקס (אם לא, אני ממליץ לך בחום לעבור מדריך מחדשים ל- SysAdmin מאמר ב Tecmint.com לפני שנמשיך). עכשיו בואו נתחיל.לנוחותנו, בואו ליצור ספרייה לאחסון סקריפטים של המעטפת שלנו:
# סקריפטים של mkdir. # סקריפטים של תקליטורים.
ופתח קובץ טקסט חדש בשם system_info.sh
עם עורך הטקסט המועדף עליך. נתחיל בהוספת כמה הערות למעלה וכמה פקודות לאחר מכן:
#!/bin/bash # סקריפט לדוגמה שנכתב עבור חלק 4 בסדרת RHCE. # סקריפט זה יחזיר את סט המידע הבא של המערכת: # -פרטי שם הבית: echo -e "\ e [31; 43m ***** מידע על HOSTNAME***** \ e [0m " hostnamectl. הד "" # -שימוש בשטח דיסק במערכת קבצים: הד -e "\ e [31; 43m *****שימוש במערכת דיסקים במרחב הדיסק***** \ e [0m " df -h. הד "" # -זיכרון חינם ושימוש במערכת: echo -e "\ e [31; 43m *****זיכרון חופשי ומשומש***** \ e [0m " חינם. הד "" # זמן פעולה וטעינה של המערכת: echo -e "\ e [31; 43m *****זמן מערכת ועומס***** \ e [0m " זמן פעולה. הד "" # משתמשים מחוברים: echo -e "\ e [31; 43m *****משתמשים שנרשמו כרגע***** \ e [0m " מי. הד "" # -למעלה 5 תהליכים בכל הנוגע לשימוש בזיכרון. הד -e "\ e [31; 43m *****5 תהליכי צריכת זיכרון מובילים***** \ e [0m " ps -eo%mem,%cpu, comm --sort = -%mem | ראש -n 6. הד "" הד -e "\ e [1; 32mDone. \ e [0m"
לאחר מכן, תן לתסריט לבצע הרשאות:
# chmod +x system_info.sh.
והפעל אותו:
./system_info.sh.
שים לב שהכותרות של כל קטע מוצגות בצבע להדמיה טובה יותר:
פונקציונליות זו מסופקת על ידי פקודה זו:
הד -e "\ e [COLOR1; COLOR2m\ e [0m "
איפה צבע 1 ו COLOR2 הם צבעי החזית והרקע בהתאמה (מידע נוסף ואפשרויות מוסברות בערך זה מתוך Arch Linux Wiki) ו הוא המחרוזת שברצונך להציג בצבע.
המשימות שייתכן שתצטרך לבצע אוטומציה עשויות להשתנות ממקרה למקרה. לפיכך, לא נוכל לכסות את כל התרחישים האפשריים במאמר אחד, אך נציג שלוש משימות קלאסיות הניתנות לאוטומטיות באמצעות סקריפטים של מעטפת:
1) עדכן את מסד הנתונים של הקבצים המקומיים, 2) מצא (ולחילופין מחק) קבצים באמצעות 777 הרשאות, וכן 3) התראה כאשר השימוש במערכת הקבצים עולה על מגבלה מוגדרת.
בואו ניצור קובץ בשם auto_tasks.sh
במדריך הסקריפטים שלנו עם התוכן הבא:
#!/bin/bash # סקריפט לדוגמה לאוטומציה של משימות: # -עדכן מסד נתונים של קבצים מקומיים: echo -e "\ e [4; 32mעדכון קובץ קובץ מקומי\ e [0m " מעודכןב. אם [$? == 0 ]; ואז הד "מסד הנתונים של הקבצים המקומיים עודכן כראוי." הד אחר "מסד הנתונים של הקבצים המקומיים לא עודכן כראוי." פי. הד "" # -מצא ו / או מחק קבצים עם 777 הרשאות. הד -e "\ e [4; 32 מ 'מחפש קבצים עם 777 הרשאות\ e [0m " # אפשר כל אחת מהאפשרויות (הערה מהשורה השנייה), אך לא שתיהן. # אפשרות 1: מחק קבצים מבלי לבקש אישור. מניח את גרסת ה- GNU של Find. #find -type f -perm 0777 -למחוק. # אפשרות 2: בקש אישור לפני מחיקת קבצים. נייד יותר על פני מערכות. למצוא -type f -perm 0777 -exec rm -i {} +; הד "" # -התראה כאשר השימוש במערכת קבצים עולה על מגבלה מוגדרת הד -e "\ e [4; 32mבדיקת השימוש במערכת קבצים\ e [0m " סף = 30. בזמן קריאת שורה; do # משתנה זה מאחסן את נתיב מערכת הקבצים כמחרוזת FILESYSTEM = $ (echo $ line | awk '{print $ 1}') # This משתנה מאחסן את אחוז השימוש (XX %) PERCENTAGE = $ (echo $ line | awk '{print $ 5}') # אחוז שימוש ללא % סִימָן. USAGE = $ {PERCENTAGE%?} אם [$ USAGE -gt $ THRESHOLD]; ואז הד "שאר השטח הזמין ב- $ FILESYSTEM נמוך באופן קריטי. משומש: $ PERCENTAGE "fi. עשה <שימו לב שיש רווח בין השניים
<
סימנים בשורה האחרונה של התסריט.שימוש בקרון
כדי לקחת את היעילות צעד אחד קדימה, לא תרצה לשבת מול המחשב שלך ולהריץ את הסקריפטים באופן ידני. במקום זאת, תשתמש cron לתזמן את המשימות האלה להפעלה על בסיס תקופתי ושולח את התוצאות לרשימת נמענים מוגדרת מראש באמצעות דוא"ל או לשמור אותן בקובץ שניתן לצפות בו באמצעות דפדפן אינטרנט.
הסקריפט הבא (filesystem_usage.sh) יפעיל את הידוע df -h פקודה, פרמט את הפלט לטבלת HTML ושמור אותו ב- report.html קוֹבֶץ:
#!/bin/bash. # סקריפט לדוגמא להדגמת יצירת דוח HTML באמצעות סקריפטים של מעטפת. # ספריית אינטרנט. WEB_DIR =/var/www/html. # קצת CSS ופריסת טבלה כדי שהדוח ייראה קצת יותר נחמד. הד ""> $ WEB_DIR/report.html. # צפה בשם המארח והכנס אותו בחלק העליון של גוף ה- html. HOST = $ (שם מארח) הד "שימוש במערכת קבצים עבור מארח$ HOST
עודכן לאחרונה: $ (תאריך)
מערכת קבצים | גודל | להשתמש % |
---|---|---|
">> $ WEB_DIR/report.html. הד $ שורה | awk '{print $ 1}' >> $ WEB_DIR/report.html. הד " | ">> $ WEB_DIR/report.html. הד $ שורה | awk '{print $ 2}' >> $ WEB_DIR/report.html. הד " | ">> $ WEB_DIR/report.html. הד $ שורה | awk '{print $ 5}' >> $ WEB_DIR/report.html. הד " |