كيفية استخدام الأمر dmesg على نظام Linux

موجه طرفية منمق على كمبيوتر محمول يعمل بنظام Linux.

فاطماواتي أحمد زينوري / شاترستوك



ال dmesg يتيح لك الأمر التعمق في العالم الخفي لعمليات بدء تشغيل Linux. قم بمراجعة ومراقبة الأجهزة ورسائل برنامج التشغيل من المخزن المؤقت الحلقي الخاص بالنواة مع صديق مكتشف الأخطاء.

كيف يعمل Ring Buffer في Linux

في أجهزة الكمبيوتر التي تشبه نظام التشغيل Linux و Unix ، يعد التمهيد وبدء التشغيل مرحلتين متميزتين من تسلسل الأحداث التي تحدث عند تشغيل الكمبيوتر.





ال عمليات التمهيد ( BIOS أو اليويفا و MBR ، و نكش ) خذ تهيئة النظام إلى النقطة التي يتم فيها تحميل النواة في الذاكرة وتوصيلها بـ ramdisk الأولي ( initrd أو initramfs )، و النظام لقد بدءت.

ال عمليات بدء التشغيل ثم التقط العصا وأكمل تهيئة نظام التشغيل. في المراحل المبكرة جدًا من التهيئة ، كان تسجيل الشياطين مثل syslogd أو rsyslogd لم يتم تشغيلها بعد. لتجنب فقدان رسائل الخطأ والتحذيرات الملحوظة من مرحلة التهيئة هذه ، تحتوي النواة على ملف حلقة العازلة التي يستخدمها كمخزن للرسائل.



المخزن المؤقت للحلقة هو مساحة ذاكرة محجوزة للرسائل. إنه بسيط التصميم وذو حجم ثابت. عندما يكون ممتلئًا ، تحل الرسائل الأحدث محل الرسائل الأقدم. من الناحية المفاهيمية ، يمكن اعتباره ملف دائري عازلة .

الإعلانات

يخزن المخزن المؤقت لحلقة kernel معلومات مثل رسائل التهيئة الخاصة ببرامج تشغيل الأجهزة ، والرسائل من الأجهزة ، والرسائل من وحدات kernel النمطية. نظرًا لاحتوائه على رسائل بدء التشغيل منخفضة المستوى ، يعد المخزن المؤقت الحلقي مكانًا جيدًا لبدء التحقيق في أخطاء الأجهزة أو مشكلات بدء التشغيل الأخرى.

لكن لا تذهب خالي الوفاض. خذ dmesg معك.



الأمر dmesg

ال dmesg الأمر يسمح لك لمراجعة الرسائل المخزنة في المخزن المؤقت للحلقة . بشكل افتراضي ، تحتاج إلى استخدام sudo لاستخدام dmesg.

less

يتم عرض جميع الرسائل الموجودة في المخزن المؤقت للحلقة في نافذة المحطة الطرفية.

كان ذلك طوفانًا. من الواضح أن ما يتعين علينا القيام به هو يضخ من خلال less:

less

الآن يمكننا التمرير خلال الرسائل بحثًا عن العناصر ذات الأهمية.

يمكنك استخدام وظيفة البحث داخل sudo لتحديد وتمييز العناصر والمصطلحات التي تهتم بها. ابدأ وظيفة البحث بالضغط على مفتاح الشرطة المائلة للأمام / في dmesg.

ذات صلة: كيفية استخدام أقل الأوامر على لينكس

إزالة الحاجة إلى سودو

إذا كنت تريد تجنب الاضطرار إلى استخدام dmesg في كل مرة تستخدم فيها sudo ، يمكنك استخدام هذا الأمر. ولكن ، كن على علم: فهو يتيح لأي شخص لديه حساب مستخدم لجهاز الكمبيوتر الخاص بك استخدام dmesg دون الحاجة إلى استخدام dmesg.

-L

إجبار إخراج اللون

افتراضيًا ، dmesg من المحتمل أن يتم تكوينه لإنتاج إخراج ملون. إذا لم يكن الأمر كذلك ، فيمكنك معرفة dmesg لتلوين ناتجها باستخدام -H (اللون) الخيار.

less

لفرض -T للعرض الملون دائمًا بشكل افتراضي ، استخدم هذا الأمر:

-H

الطوابع الزمنية البشرية

افتراضيًا ، -T استخدم تدوين طابع زمني بالثواني و نانوثانية منذ أن بدأت النواة. لجعل هذا بتنسيق أكثر ملاءمة للإنسان ، استخدم less (بشري) الخيار.

--follow

هذا يتسبب في شيئين.

  • يتم عرض الإخراج تلقائيًا في dmesg.
  • تُظهر الطوابع الزمنية طابعًا زمنيًا بالتاريخ والوقت بدقة دقيقة. يتم تصنيف الرسائل التي حدثت في كل دقيقة بالثواني والنانو ثانية من بداية تلك الدقيقة.

الطوابع الزمنية للقراءة البشرية

إذا كنت لا تحتاج إلى دقة نانوثانية ، ولكنك تريد طوابع زمنية يسهل قراءتها أكثر من الإعدادات الافتراضية ، فاستخدم dmesg (يمكن للبشر قراءته) الخيار. (إنه أمر محير بعض الشيء. Ctrl+C هو الخيار البشري ، dmesg هو الخيار الذي يمكن للبشر قراءته.)

grep

يتم تقديم الطوابع الزمنية كتواريخ وأوقات قياسية ، ولكن يتم تقليل الدقة إلى دقيقة واحدة.

الإعلانات

كل ما حدث خلال دقيقة واحدة له نفس الطابع الزمني. إذا كان كل ما يزعجك هو تسلسل الأحداث ، فهذا جيد بما فيه الكفاية. لاحظ أيضًا أنه تم إرجاعك إلى موجه الأوامر. لا يستدعي هذا الخيار -i تلقائيًا.

مشاهدة الأحداث الحية

لمشاهدة الرسائل فور وصولها إلى المخزن المؤقت لحلقة kernel ، استخدم sda (انتظر الرسائل) الخيار. قد تبدو هذه الجملة غريبة بعض الشيء. إذا تم استخدام المخزن المؤقت للحلقة لتخزين الرسائل من الأحداث التي تحدث أثناء تسلسل بدء التشغيل ، فكيف يمكن أن تصل الرسائل الحية في المخزن المؤقت للحلقة بمجرد تشغيل الكمبيوتر؟

سيؤدي أي شيء يتسبب في حدوث تغيير في الأجهزة المتصلة بجهاز الكمبيوتر الخاص بك إلى إرسال الرسائل إلى المخزن المؤقت لحلقة kernel. قم بتحديث أو إضافة وحدة kernel ، وسترى رسائل المخزن المؤقت الحلقية حول هذه التغييرات. إذا قمت بتوصيل محرك أقراص USB أو توصيل جهاز Bluetooth أو فصله ، فسترى رسائل في sda انتاج. حتى الأجهزة الافتراضية ستتسبب في ظهور رسائل جديدة في المخزن المؤقت للحلقة. قم بتشغيل آلة افتراضية ، وسترى معلومات جديدة تصل إلى المخزن المؤقت الحلقي.

sda

لاحظ أنه لم يتم إرجاعك إلى موجه الأوامر. عندما تظهر رسائل جديدة يتم عرضها بواسطة grep في الجزء السفلي من نافذة المحطة.

الإخراج من sudo dmesg - اتبع نافذة طرفية

حتى تحميل قرص مضغوط يُنظر إليه على أنه تغيير ، لأنك قمت بتطعيم محتويات القرص المضغوط في شجرة الدليل.

dmesg ring المخزن المؤقت للرسائل كنتيجة لتركيب قرص مضغوط

للخروج من التغذية في الوقت الفعلي ، اضغط على -E.

استرجع آخر عشر رسائل

استخدم أمر الذيل لاسترداد العشر الأواخر رسائل المخزن المؤقت لحلقة kernel. بالطبع يمكنك استرداد أي عدد من الرسائل. عشرة هو مجرد مثالنا.

dmesg

الإعلانات

يتم استرداد الرسائل العشر الأخيرة وإدراجها في نافذة المحطة الطرفية.

البحث عن مصطلحات محددة

قم بتوصيل الإخراج من -l من خلال dmesg للبحث عن سلاسل أو أنماط معينة . نحن هنا نستخدم dmesg (تجاهل الحالة) بحيث يتم تجاهل حالة السلاسل المطابقة. ستشمل نتائجنا USB و USB وأي تركيبة أخرى من الأحرف الصغيرة والكبيرة.

dmesg

نتائج البحث المميزة بأحرف كبيرة وصغيرة.

يمكننا عزل الرسائل التي تحتوي على إشارات إلى الأولى السكازي القرص الصلب على النظام -f. (في الواقع ، يتم استخدام dmesg أيضًا في الوقت الحاضر لـ أول محرك أقراص ثابتة SATA ومحركات أقراص USB.)

dmesg

كافة الرسائل التي تشير إلى -x يتم استردادها وإدراجها في نافذة المحطة.

لصنع dmesg ابحث عن مصطلحات متعددة في وقت واحد ، استخدم dmesg (تمديد التعبير العادي). يجب تقديم مصطلحات البحث داخل سلسلة بين علامات الاقتباس بالأنبوب | المحددات بين مصطلحات البحث:

dmesg

يتم سرد أي رسالة تشير إلى أي من مصطلحات البحث في نافذة المحطة الطرفية.

استخدام مستويات السجل

كل رسالة يتم تسجيلها في المخزن المؤقت لحلقات kernel لها مستوى مرفق بها. يمثل المستوى أهمية المعلومات في الرسالة. المستويات هي:

    تظهر: النظام غير قابل للاستخدام. إنذار: يجب اتخاذ الإجراءات على الفور. نقد: ظروف حرجة. يخطئ: شروط الخطأ. تحذير: شروط التحذير. تنويه: حالة طبيعية لكن مهمة. معلومات: معلوماتية. التصحيح: رسائل مستوى التصحيح.
الإعلانات

يمكننا أن نجعل dmesg استخراج الرسائل التي تطابق مستوى معين باستخدام dmesg (المستوى) وتمرير اسم المستوى كمعامل سطر أوامر. لمشاهدة رسائل المستوى المعلوماتي فقط ، استخدم هذا الأمر:

grep

جميع الرسائل المدرجة هي رسائل إعلامية. لا تحتوي على أخطاء أو تحذيرات ، فقط إشعارات مفيدة.

اجمع بين مستويين من السجلات أو أكثر في أمر واحد لاسترداد الرسائل من عدة مستويات من السجل:

dmesg

الإخراج من grep عبارة عن مزيج من الرسائل لكل مستوى سجل:

فئات المنشأة

ال --follow يتم تجميع الرسائل في فئات تسمى المرافق. قائمة المرافق هي:

    النواة: رسائل Kernel. المستعمل: رسائل على مستوى المستخدم. بريد: نظام البريد. شيطان: شياطين النظام. المصادقة: رسائل الأمان / التفويض. سجل النظام: رسائل syslogd الداخلية. lpr: النظام الفرعي للطابعة الخطية. الإخبارية: النظام الفرعي لأخبار الشبكة.
الإعلانات

يمكننا أن نطلب dmesg لتصفية إخراجها لإظهار الرسائل فقط في منشأة معينة. للقيام بذلك ، يجب أن نستخدم

sudo dmesg
(منشأة) الخيار:

sudo dmesg | less

sudo sysctl -w kernel.dmesg_restrict=0
يسرد جميع الرسائل المتعلقة بالشياطين في نافذة المحطة.

كما فعلنا مع المستويات ، يمكننا أن نسأل

sudo dmesg -L
لسرد الرسائل من أكثر من منشأة في وقت واحد:

sudo dmesg --color=always

الإخراج عبارة عن مزيج من رسائل سجل النظام ورسائل السجل الخفي.

الجمع بين المرفق والمستوى

ال

sudo dmesg -H
خيار (فك) يجعل
sudo dmesg -T
إظهار المنشأة والمستوى كبادئات يمكن قراءتها بواسطة الإنسان لكل سطر.

sudo dmesg --follow

يمكن رؤية المرفق والمستوى في بداية كل سطر:

الإعلانات

القسم الأول المميز هو رسالة من منشأة kernel بمستوى إشعار. القسم الثاني المميز هو رسالة من منشأة kernel بمستوى من المعلومات.

هذا رائع ، لكن لماذا؟

باختصار ، اكتشاف الأخطاء.

إذا كنت تواجه مشكلات مع جهاز لا يتم التعرف عليه أو لا تتصرف بشكل صحيح ،

sudo dmesg | last -10
قد يلقي بعض الضوء على هذه القضية.

  • استخدم
    sudo dmesg | grep -i usb
    لمراجعة الرسائل من الأعلى مستوى لأسفل خلال كل مستوى أدنى ، بحثًا عن أي أخطاء أو تحذيرات تشير إلى عنصر الجهاز ، أو قد يكون لها تأثير على المشكلة.
  • استخدم
    sudo dmesg | grep -i sda
    للبحث عن أي ذكر مناسب امكانية لمعرفة ما إذا كانت تحتوي على أي معلومات مفيدة.
  • أنبوب
    sudo dmesg | grep -E 'memory|tty|dma'
    من خلال
    sudo dmesg -l info
    وابحث عن ذات الصلة السلاسل أو المعرفات مثل الشركة المصنعة للمنتج أو أرقام الطراز.
  • أنبوب
    sudo dmesg -l debug,notice
    من خلال
    sudo dmesg -f daemon
    وابحث عن شروط عامة مثل GPU أو التخزين ، أو مصطلحات مثل فشل أو فشل أو غير قادر.
  • استخدم
    sudo dmesg -f syslog, daemon
    خيار ومشاهدة
    sudo dmesg -x
    الرسائل في الوقت الحقيقي.

صيد سعيد.

أوامر لينكس
الملفات قطران · الكهروضوئية · قط · تاك · chmod · سيطرة · فرق · سيد · مع · رجل · Pushd · popd · fsck · اختبار · فيما يليها · فد · باندوك · قرص مضغوط · المسار $ · awk · انضم · جي ق · يطوى · فريد · جورنال سي تي ال · ذيل · حالة · ls · fstab · رما - طرد - قذف · أقل · chgrp · تشاون · مراجعة · نظرة · سلاسل · نوع · إعادة تسمية · أزيز · بفك · تتعدد · أومونت · تثبيت · fdisk · مكفس · جمهورية مقدونيا · rmdir · رسينك · مدافع · gpg · نحن · نانو · مكدير · ال · ln · تصحيح · يتحول · rclone · أجاد · SRM
العمليات الاسم المستعار · شاشة · أعلى · لطيف · رائع · تقدم · دعامة · النظام · تمكس · chsh · التاريخ · في · حزمة · مجانا · التي · dmesg · usermod · ملاحظة · الجذور · xargs · tty · الخنصر · lsof · vmstat · نفذ الوقت · حائط · نعم · قتل · نايم · سودو · له · زمن · المجموعة · usermod · مجموعات · lshw · اغلق · اعادة التشغيل · توقف · انقطاع التيار الكهربائي · passwd · lscpu · كرونتاب · تاريخ · bg · fg
الشبكات netstat · بينغ · مسار التتبع · IP · ss · الذي هو · fail2ban · bmon · أنت · اصبع اليد · nmap · بروتوكول نقل الملفات · لفة · wget · من الذى · من أنا · في · iptables · ssh-كجن · ufw

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين

اقرأ التالي صورة الملف الشخصي لـ Dave McKay ديف مكاي
استخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة

مقالات مثيرة للاهتمام