دستور dmesg چیست و چگونه استفاده کنیم

dmesg یا Display Message دستوری است که رویداد ها و خطاهای کرنل (هسته) لینوکس را نشان می دهد. پیام ها شامل اطلاعاتی درباره Device Derive هایی که زمان بوت شدن سیستم، درون کرنل بارگذاری (Load) می شوند. به عبارت دیگر پیام های نشان داده شده توسط دستور dmesg، اطلاعاتی از Device های متصل شده، یا قطع شده به/از درون کرنل سیستم عامل لینوکس و همچنین خطاهایی که اتفاق می افتد را نشان می دهد. این اطلاعات برای رفع مشکل های رخ داده بسیار مفید خواهند بود. در ادامه Syntax دستور آمده است :

dmesg option

فرمت خروجی دستور به صورت زیر است :

time device name: message

  • time : بر حسب ثانیه و مدت زمان گذشته شده پس از زمان بوت شدن سیستم. بطور مثال اگر عدد 30.5267 باشد، یعنی 30 ثانیه از بوت شدن سیستم گذشته است.
  • device name : نام Device به همراه مشخصات کارخانه سازنده آن.
  • message : اطلاعاتی از سخت افزار های بارگذاری شده درون کرنل لینوکس.

 شکل ساده استفاده آن، اجرای دستور بدون هیچ سوئیچی است. با اجرای دستور زیر اطلاعاتی از موفق بودن یا خطا ها، از سخت افزار های بارگذاری شده درون کرنل نشان داده می شود.

dmesg

می توانید با استفاده از دستور grep، اطلاعاتی از یک سخت افزار خاص را (مانند نخستین کارت شبکه یا اطلاعاتی از اتصال ها و ورودی های usb) پیدا کنید.

dmesg | grep -i eth0

dmesg | grep -i usb

همچنین برای بدست آوردن اطلاعاتی از فضای حافظه (Memory) از دستور زیر استفاده کنید. (توجه کنید که M در Memory بزرگ است)

dmesg | grep -i Memory

و یا برای بدست آوردن اطلاعاتی از بلوتوث سیستم از دستور زیر استفاده کنید.

dmesg | grep -i bluetooth

با استفاده از سوئیج c- می توایند پیام های dmesg log را پاک کنید. دستور زیر باعث می شود تا تمامی پیام ها از زمان بوت شدن به سیستم تا زمان اجرای دستور زیر، را پاک می کند. (یعنی آخرین بوت). پس از اتصال هر سخت افزاری به سیستم می توانید اطلاعات آنرا مشاهده کنید. یعنی اگر پیش از اتصال یک سخت افزار دستور زیر را پاک کنید و سپس سخت افزاری را متصل کنید، می توانید از دستور dmesg اطلاعات و پیام های Log را مشاهده کنید.

dmesg -c

اگر تصادفا پیام های dmesg log را پا کنید؟ نگران نباشید تمامی این پیام ها در یکی از فایل های var/log/kern.log/ یا var/log/dmesg/ ذخیره شده اند و می توانید با هر یکی از دستور های cat,less,head,tail آنها را بخوانید.

cat /var/log/kern.log

cat /var/log/dmesg