7 Using dmesg to read the kernel ring buffer
תוכן עניינים:
גרעין לינוקס הוא הליבה של מערכת ההפעלה השולטת בגישה למשאבי המערכת, כגון מעבד, התקני קלט / פלט, זיכרון פיזי ומערכות קבצים. הגרעין כותב הודעות שונות למאגר טבעת הגרעינים במהלך תהליך האתחול, וכאשר המערכת פועלת. הודעות אלה כוללות מידע שונה על פעולת המערכת.
מאגר טבעת הגרעין הוא חלק מהזיכרון הפיזי המחזיק את הודעות היומן של הגרעין. יש לו גודל קבוע, כלומר ברגע שהמאגר מלא, רשומות היומנים הישנות יותר מוחלפות.
כלי שירות שורת הפקודה
dmesg
משמש להדפסה ולבקרה על חיץ טבעת הגרעינים בלינוקס ובמערכות הפעלה אחרות דמויות Unix. זה שימושי לבחינת הודעות אתחול גרעינים ולבעיות באגים הקשורים לחומרה.
במדריך זה, נסקור את היסודות של הפקודה
dmesg
.
באמצעות פיקוד
dmesg
התחביר לפקודה
dmesg
הוא כדלקמן:
dmesg
כאשר מופעל ללא אפשרויות
dmesg
כותב את כל ההודעות ממאגר טבעת הגרעין לפלט הסטנדרטי:
dmesg
כברירת מחדל, כל המשתמשים יכולים להריץ את הפקודה
dmesg
. עם זאת, במערכות מסוימות, הגישה ל-
dmesg
עשויה להיות מוגבלת למשתמשים שאינם שורש. במצב זה, כשאתה קורא ל-
dmesg
תקבל הודעת שגיאה כמו להלן:
dmesg: read kernel buffer failed: Operation not permitted
פרמטר הגרעין
kernel.dmesg_restrict
מציין אם משתמשים לא מוגדרים יכולים להשתמש ב-
dmesg
כדי להציג הודעות ממאגר היומנים של הגרעין. כדי להסיר את המגבלות, הגדר אותה לאפס:
sudo sysctl -w kernel.dmesg_restrict=0
בדרך כלל הפלט מכיל הרבה שורות מידע, כך שרק את החלק האחרון של הפלט ניתן לצפייה. כדי לראות עמוד אחד בכל פעם, צינור את הפלט לכלי שירות הביפר כגון
less
או
more
:
dmesg --color=always | less
--color=always
משמש לשמירה על הפלט הצבעוני.
dmesg | grep -i usb
dmesg
קורא את ההודעות שנוצרו
/proc/kmsg
מהקובץ הווירטואלי
/proc/kmsg
. קובץ זה מספק ממשק למאגר טבעת הגרעין וניתן לפתוח אותו רק על ידי תהליך אחד. אם תהליך
syslog
פועל במערכת שלך ואתה מנסה לקרוא את הקובץ עם
cat
, או
less
, הפקודה תיתקע.
הדמון של
syslog
משליך הודעות גרעין ל-
/var/log/dmesg
, כך שתוכל גם להשתמש בקובץ היומן הזה:
dmesg
פלט
dmesg
הפקודה
dmesg
מספקת מספר אפשרויות העוזרות לך לעצב ולסנן את הפלט.
אחת האפשרויות המשומשות ביותר של
dmesg
היא
-H
(-
--human
), המאפשרת את הפלט הקריא על ידי האדם. אפשרות זו מצנרת את פלט הפקודה לביפר:
dmesg -H
כדי להדפיס חותמות זמן קריאות אנושיות השתמש באפשרות
-T
(-
--ctime
):
dmesg -T
IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
ניתן להגדיר את פורמט חותמות הזמן גם באמצעות
--time-format
dmesg --time-format=delta
אתה יכול גם לשלב שתי אפשרויות או יותר:
dmesg -H -T
לצפייה בפלט של פקודת
dmesg
בזמן אמת השתמש באפשרות
-w
(-
--follow
):
סינון תפוקת
dmesg
אתה יכול להגביל את תפוקת
dmesg
למתקנים ורמות נתונות.
המתקן מייצג את התהליך שיצר את ההודעה.
dmesg
תומך במתקני היומן הבאים:
-
kern
- הודעות גרעיןuser
- הודעות ברמת המשתמשmail
- מערכת דואר אלקטרוני - מערכת דמונים מערכתית - הודעות אבטחה / הרשאהsyslog
- הודעות פנימיות syslogdlpr
- מדפסת קו תת מערכתnews
- תת רשת חדשות מערכת
ה-
-f
(-
--facility
) מאפשרת לך להגביל את הפלט למתקנים ספציפיים. האפשרות מקבלת מתקן אחד או יותר מופרדים בפסיקים.
לדוגמה, כדי להציג רק את הודעות הגרעין והדמונים של המערכת בהן היית משתמש:
dmesg -f kern, daemon
כל הודעת יומן קשורה לרמת יומן שמראה את חשיבות ההודעה.
dmesg
תומך ברמות היומן הבאות:
-
emerg
- המערכת אינה ניתנת לשימושalert
- יש לנקוט בפעולה מיידית - שגיאה בתנאים קריטיים - תנאי שגיאהwarn
- התראה על תנאי אזהרה - מידע רגיל אך משמעותי -debug
במידע - הודעות באגים ברמה.
The
-l
(-
--level
) אפשרות מגבילה את הפלט לרמות מוגדרות. האפשרות מקבלת רמה אחת או יותר מופרדות בפסיקים.
הפקודה הבאה מציגה רק את השגיאה וההודעות הקריטיות:
ניקוי מאגר הטבעת
האפשרות
-C
(-
--clear
) מאפשרת לך לנקות את מאגר הצלצולים:
sudo dmesg -C
רק שורש או משתמשים עם הרשאות sudo יכולים לנקות את המאגר.
כדי להדפיס את תוכן המאגר לפני ניקוי השתמש באפשרות
-c
(
-c
--read-clear
):
sudo dmesg -c
סיכום
הפקודה
dmesg
מאפשרת לך להציג ולשלוט במאגר טבעת הגרעינים. זה יכול להיות שימושי מאוד בעת פתרון בעיות בעיית גרעינים או חומרה.
הקלד
man dmesg
בטרמינל שלך למידע על כל אפשרויות ה-
dmesg
הזמינות.
סקירה: כלי שורת פקודה 14 פקודה קלה יותר לשימוש מאשר PowerShell
עבור עבודה רצינית במסוף, כמה כלי עזר (אם בכלל) יכול להתאים את היכולת של פיקוד קח. אם אתה משתמש בשורת הפקודה באופן קבוע, זה השקעה טובה.
פקודה שונה בלינוקס
diff הוא כלי שורת פקודה המאפשר לך להשוות בין שני קבצים שורה אחר שורה. זה יכול גם להשוות את התוכן של ספריות.
פקודה Du בלינוקס
הפקודה du, קיצור לשימוש בדיסק מדווחת על הכמות המשוערת של שטח הדיסק המשמש קבצים או ספריות נתונים. זה שימושי למעשה למציאת קבצים וספריות שגוזלים כמויות גדולות של שטח דיסק.