סדרת RHCSA: ניהול חבילות Yum, אוטומציה של משימות עם Cron וניטור של יומני המערכת – חלק 10

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

RHCSA: Yum Package Management, Cron Job Scheduling and Log Monitoring – Part 10

ניהול חבילות באמצעות Yum

כדי להתקין חבילה יחד עם כל ההסמכות שאינן כבר מותקנות, תשתמש:

# yum -y install package_name(s)

איפה שם_חבילה(ים) מייצג לפחות שם חבילה אמיתי אחד.

לדוגמא, כדי להתקין httpd ו-mlocate (בסדר זה), הקלד.

# yum -y install httpd mlocate

הערה: האות y בדוגמא לעיל מדלגת על ההנחיות לאישור שyum מציג לפני שמבצע את ההורדה וההתקנה האמיתית של התוכנות המבוקשות. אפשר להשאיר את זה.

כברירת מחדל, yum יתקין את החבילה עם הארכיטקטורה שתואמת לארכיטקטורת המערכת, אלא אם כן מתעלמים מכך על ידי הוספת ארכיטקטורת החבילה לשמה.

לדוגמא, במערכת 64 סיביות, yum install package יתקין את הגרסה x86_64 של החבילה, ואילו yum install package.x86 (אם זה זמין) יתקין את הגרסה 32-bit שלה.

יתכן שיהיו רגעים שבהם תרצה להתקין חבילה אך לא תכיר את שמה המדויק. אפשרויות search all או search יכולות לחפש במאגרים המאופשרים כעת עבור מילת מפתח מסוימת בשם החבילה ו/או בתיאור שלה בהתאמה.

לדוגמה,

# yum search log

תחפש במאגרים המותקנים עבור חבילות עם המילה "log" בשמם ובתקצירים שלהן, בעוד

# yum search all log

תחפש את אותה מילת מפתח בתיאור החבילה ובשדות url גם.

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

# yum info logwatch
Search Package Information

ניתן לבדוק באופן קבוע לעדכונים עם הפקודה הבאה:

# yum check-update

הפקודה לעיל תחזיר את כל החבילות המותקנות אשר קיימת עבורן עדכון זמין. בדוגמה המוצגת בתמונה למטה, רק rhel-7-server-rpms יש עבורה עדכון זמין:

Check For Package Updates

אז ניתן לעדכן את החבילה בודדת זו בלבד עם,

# yum update rhel-7-server-rpms

אם ישנן מספר חבילות שניתן לעדכן, yum update יעדכן את כולן בו זמנית.

כעת מה קורה כאשר אתה מכיר את שם התכנית הניתנת להפעלה, כמו ps2pdf, אך לא יודע איזה חבילה מספקת אותה? ניתן לגלות זאת עם yum whatprovides “*/[executable]”:

# yum whatprovides “*/ps2pdf”
Find Package Belongs to Which Package

עכשיו, בנושא הסרת חבילה, ניתן לעשות זאת עם yum remove package. קל, לא? זה מראה כי yum הוא מנהל חבילות שלם ועוצמתי.

# yum remove httpd

קרא גם: 20 פקודות Yum לניהול ניהול חבילות RHEL 7

טובה וישנה RPM פשוטה

RPM (ידועה גם כ-מנהל חבילות RPM, או מקורית כ-מנהל חבילות RedHat) ניתן גם להשתמש בה כדי להתקין או לעדכן חבילות כאשר הן מגיעות בצורת חבילות .rpm עצמאיות.

לרוב משתמשים בקובץ הפלט המפורט -Uvh כדי לציין שיש להתקין את החבילה אם היא עדיין לא קיימת או לנסות לעדכנה אם היא כבר מותקנת (-U), וליצור פלט מפורט (-v) וסרגל התקדמות עם סימני גבעול (-h) במהלך הפעולה. לדוגמה,

# rpm -Uvh package.rpm

שימוש טיפולי נוסף ב־rpm הוא ליצור רשימה של חבילות המותקנות כעת עם הקוד>rpm -qa (קיצור לשאילתא כולה):

# rpm -qa
Query All RPM Packages

קרא גם: 20 פקודות RPM להתקנת חבילות ב־RHEL 7

קידום משימות באמצעות Cron

לינוקס ומערכות ההפעלה שונות בדומה ל־Unix כוללות כלי בשם cron המאפשר לך לתזמן משימות (כלומר פקודות או סקריפטים של של פקודות) לרוץ באופן תדיר. Cron בודק כל דקה את התיקייה /var/spool/cron לקבצים שמכילים את שמות החשבונות ב־/etc/passwd.

בעת ביצוע פקודות, כל הפלט נשלח לבעלים של קובץ ה-crontab (או למשתמש שצוין במשתנה הסביבה MAILTO בקובץ /etc/crontab, אם הוא קיים).

קבצי ה-crontab (שנוצרים על ידי הקלדת crontab -e והקשת Enter) יש להם את הפורמט הבא:

Crontab Entries

לכן, אם נרצה לעדכן את מסד הנתונים המקומי (שמשמש על ידי locate למציאת קבצים לפי שם או תבנית) בכל שנייה יום שני של החודש ב-2:15 בבוקר, עלינו להוסיף את הקלט הבא ל-crontab:

15 02 2 * * /bin/updatedb

הקלט ב-crontab מעלה קורא, "הרץ את /bin/updatedb ביום השני של החודש, בכל חודש בשנה, ללא קשר ליום בשבוע, ב-2:15 בבוקר". כפי שאתה כבר דיברת, הסמל המופיע כוכב משמש כתו כללי.

לאחר הוספת משימת cron, תראה כי קובץ בשם root נוסף בתוך /var/spool/cron, כפי שציינו מראש. קובץ זה מפרט את כל המשימות שהדמון crond צריך להריץ:

# ls -l /var/spool/cron
Check All Cron Jobs

בתמונה מעלה, crontab של המשתמש הנוכחי ניתן להציג באמצעות cat /var/spool/cron/root או,

# crontab -l

אם נצטרך להריץ משימה בצורה יותר דקה (לדוגמה, פעמיים ביום או שלוש פעמים בכל חודש), גם crontab יכול לעזור לך לעשות זאת.

לדוגמה, כדי להריץ /my/script בראשון וב-15 של כל חודש ולשלוח כל פלט ל-/dev/null, תוכל להוסיף שני קלטי crontab כך:

01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

אך כדי שהמשימה תהיה קלה יותר לתחזוקה, ניתן לשלב את שתי הכניסות לכניסה אחת:

01 00 1,15 * *  /my/script > /dev/null 2>&1

לפי הדוגמה הקודמת, ניתן להפעיל /my/other/script בשעה 1:30 בבוקר ביום הראשון של החודש כל שלושה חודשים:

30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

אך כאשר עליך לחזור על משימה מסוימת כל "x" דקות, שעות, ימים או חודשים, ניתן לחלק את המיקום הימני בתדירות הרצויה. הכניסה crontab הבאה מכילה את אותו המשמעות כמו הקודמת:

30 01 1 */3 * /my/other/script > /dev/null 2>&1

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

@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

לקריאה נוספת: 11 פקודות לקביעת משימות Cron ב-RHEL 7

איתור ובדיקת לוגים

הלוגים של המערכת ממוקמים (ומסובבים) בתוך התיקייה /var/log. לפי סטנדרט מערכת הקבצים של מערכת הפעלת Linux, תיקייה זו מכילה קבצי לוג משתנים, שנכתבים לתוכה או לתת-תיקיות מתאימות (כמו audit, httpd, או samba בתמונה למטה) על ידי הדמונים המתאימים במהלך הפעולה של המערכת:

# ls /var/log
Linux Log Files Location

אחרים קבצי יומנים מעניינים הם dmesg (מכיל את כל ההודעות ממאגר הזיכרון של הקרנל), secure (יומני ניסיונות חיבור שדורשים אימות משתמש), messages (הודעות בכל רוחב המערכת) ו-wtmp (רשומות של כל התחברויות והתנתקויות משתמש).

יומנים הם חשובים מאוד מכיוון שהם מאפשרים לך לקבל הצצה למה קורה בכל עת במערכת שלך, ולמה קרה בעבר. הם מייצגים כלי בלתי יקר לאיתור ומעקב אחר שרת Linux, ולכן הם נהוגים עם הפקודה tail -f command כדי להציג אירועים, בזמן אמת, כשהם קורים ומתוודדים ביומן.

לדוגמה, אם ברצונך להציג אירועים הקשורים לקרנל, הקלד את הפקודה הבאה:

# tail -f /var/log/dmesg

אותו הדבר אם ברצונך לצפות בגישה לשרת האינטרנט שלך:

# tail -f /var/log/httpd/access.log

סיכום

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

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

Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/