DMESG(1)

الاسم
dmesg - اِطبع خبيئة النواة الحلقية أو تحكم بها

موجز

dmesg [خيارات]

dmesg --clear

dmesg --read-clear [خيارات]

dmesg --console-level مستوى

dmesg --console-on

dmesg --console-off

الوصف

يُستخدم dmesg لفحص خبيئة النواة الحلقية أو التحكم بها.

الإجراء المبدئي هو عرض كافة الرسائل من خبيئة النواة الحلقية.

الخيارات

الخيارات --clear، و*--read-clear*، و*--console-on*، و*--console-off*، و*--console-level* مانعة لبعضها تبادلياً.

-C، --clear
    نظّف الخبيئة الحلقية.

-c، --read-clear
    نظّف الخبيئة الحلقية بعد طباعة محتوياتها أولاً.

-D، --console-off
    عطّل طباعة الرسائل إلى وحدة التحكم (console).

-d، --show-delta
    اِعرض الطابع الزمني وفارق الوقت المنقضي بين الرسائل. إذا استُخدم مع --notime فسيُطبع فارق الوقت فقط دون الطابع الزمني.

-E، --console-on
    فعّل طباعة الرسائل إلى وحدة التحكم (console).

-e، --reltime
    اِعرض الوقت المحلي والفارق بتنسيق مقروء للبشر. تنبه إلى أن التحويل إلى الوقت المحلي قد يكون غير دقيق (انظر -T لمزيد من التفاصيل).

-F، --file ملف
    اقرأ رسائل سجل النظام (syslog) من الـ ملف المحدد. لاحظ أن -F لا يدعم الرسائل بتنسيق kmsg. انظر -K بدلاً من ذلك.

-f، --facility قائمة
    قصر المخرجات على الـ قائمة المحددة (المفصولة بفاصلة) من المرافق. على سبيل المثال:

    dmesg --facility=daemon

    سيطبع الرسائل من عفاريت (daemons) النظام فقط. لمعرفة كافة المرافق المتاحة انظر مخرجات --help.

-H، --human
    فعّل المخرجات المقروءة للبشر. انظر أيضاً --color و*--reltime* و*--nopager*.

-J، --json
    استخدم تنسيق مخرجات JSON. تنسيق مخرجات الوقت يكون بصيغة "sec.usec" فقط، ولا يُفك ترميز مستوى أولوية السجل مبدئياً (استخدم --decode للفصل بين المرفق والأولوية)، كما تُتجاهل الخيارات الأخرى للتحكم في تنسيق المخرجات أو تنسيق الوقت بصمت.

-K، --kmsg-file ملف
    اقرأ رسائل /dev/kmsg من الـ ملف المحدد. يُتوقع فصل السجلات المختلفة بواسطة بايت NULL.

-k، --kernel
    اِطبع رسائل النواة.

-L، --color[=متى]
    لوّن المخرجات. المعطى الاختياري متى يمكن أن يكون auto (آلي)، أو never (أبداً)، أو always (دائماً). إذا أُهمل معطى متى، فإنه يُضبط مبدئياً على auto. يمكن تعطيل الألوان؛ ولمعرفة المبدئي المدمج حالياً انظر مخرجات --help. انظر أيضاً قسم الألوان (COLORS) أدناه.

-l، --level قائمة
    قصر المخرجات على الـ قائمة المحددة (المفصولة بفاصلة) من المستويات. على سبيل المثال:

    dmesg --level=err,warn

    سيطبع رسائل الخطأ والتحذير فقط. لمعرفة كافة المستويات المتاحة انظر مخرجات --help.

    إلحاق علامة زائد + باسم المستوى يتضمن أيضاً كافة المستويات الأعلى. على سبيل المثال:

    dmesg --level=err+

    سيطبع المستويات err، و*crit*، و*alert*، و*emerg*.

    إسباقه بها سيتضمن كافة المستويات الأدنى.

-n، --console-level مستوى
    اضبط الـ مستوى الذي تُطبع عنده الرسائل إلى وحدة التحكم. الـ مستوى هو رقم المستوى أو اختصار لاسم المستوى. لمعرفة كافة المستويات المتاحة انظر مخرجات --help.

    على سبيل المثال، -n 1 أو -n emerg يمنع كافة الرسائل، باستثناء رسائل الطوارئ (الذعر)، من الظهور على وحدة التحكم. تظل كافة مستويات الرسائل تُكتب في /proc/kmsg، لذا لا يزال بالإمكان استخدام syslogd(8) للتحكم بدقة في مكان ظهور رسائل النواة. عند استخدام الخيار -n، لن يقوم dmesg بطباعة أو تنظيف خبيئة النواة الحلقية.

--noescape
    المحارف غير القابلة للطباعة والتي قد تكون غير آمنة (مثل تسلسلات البايتات المتعددة المعطوبة، ومحارف التحكم في الطرفية، وما إلى ذلك) تُهرّب بصيغة \x<hex> لأسباب أمنية مبدئياً. يعطل هذا الخيار هذه الميزة تماماً. وهو مفيد مثلاً لأغراض التنقيح مع الخيار --raw. كن حذراً ولا تستخدمه مبدئياً.

-P، --nopager
    لا تمرر المخرجات إلى برنامج تصفح (pager). يُفعل برنامج التصفح مبدئياً لمخرجات --human.

-p، --force-prefix
    أضف معلومات المرفق، أو المستوى، أو الطابع الزمني لكل سطر في الرسائل متعددة الأسطر.

-r، --raw
    اطبع مخزن الرسائل الخام، أي لا تنزع بادئات مستوى السجل، ولكن تظل جميع المحارف غير القابلة للطباعة مهربة (انظر أيضاً --noescape).

    لاحظ أن الصيغة الخام الحقيقية تعتمد على الطريقة التي يقرأ بها dmesg رسائل النواة. يستخدم جهاز /dev/kmsg صيغة مختلفة عن syslog(2). وللتوافق مع الإصدارات السابقة، يعيد dmesg البيانات دائماً بصيغة syslog(2). من الممكن قراءة البيانات الخام الحقيقية من /dev/kmsg عبر، على سبيل المثال، الأمر 'dd if=/dev/kmsg iflag=nonblock'.

-S، --syslog
    اجبر dmesg على استخدام واجهة النواة syslog(2) لقراءة رسائل النواة. المبدئي هو استخدام /dev/kmsg بدلاً من syslog(2) منذ إصدار النواة 3.5.0.

-s، --buffer-size حجم
    استخدم مخزناً بحجم حجم للاستعلام عن المخزن الدائري للنواة. هذا الحجم هو 16392 مبدئياً. (كان حجم مخزن syslog المبدئي للنواة 4096 في البداية، ثم 8192 منذ 1.3.54، و16384 منذ 2.1.113.) إذا ضبطت مخزن النواة ليكون أكبر من المبدئي، فيمكن استخدام هذا الخيار لعرض المخزن بالكامل.

-T، --ctime
    اِطبع طوابع زمنية مقروءة للبشر.

    كن على علم بأن الطابع الزمني قد يكون غير دقيق! إن مصدر الوقت المستخدم للسجلات لا يُحدث بعد تعليق (SUSPEND) أو استئناف (RESUME) النظام. تُعدل الطوابع الزمنية وفقاً للفارق الحالي بين ساعة وقت الإقلاع والساعة الرتيبة، وهذا يعمل فقط للرسائل التي طُبعت بعد آخر استئناف.

--since وقت
    اعرض السجلات منذ الوقت المحدد. دقة أجزاء الثانية متاحة. من الممكن تحديد الوقت بطريقة مطلقة وكذلك بصيغة نسبية (مثلاً '1 hour ago'). كن على علم بأن الطابع الزمني قد يكون غير دقيق وانظر --ctime لمزيد من التفاصيل.

--until وقت
    اعرض السجلات حتى الوقت المحدد. دقة أجزاء الثانية متاحة. من الممكن تحديد الوقت بطريقة مطلقة وكذلك بصيغة نسبية (مثلاً '1 hour ago'). كن على علم بأن الطابع الزمني قد يكون غير دقيق وانظر --ctime لمزيد من التفاصيل.

-t، --notime
    لا تطبع طوابع النواة الزمنية.

--time-format تنسيق
    اطبع الطوابع الزمنية باستخدام الصيغة تنسيق المعطاة، والتي يمكن أن تكون ctime، أو reltime، أو delta، أو iso، أو raw. الصيغ الثلاث الأولى هي أسماء مستعارة لخيارات صيغ الوقت المحددة. تستخدم صيغة raw صيغة الطابع الزمني المبدئية التي تعرض الثواني منذ الإقلاع. صيغة iso هي تطبيق dmesg لصيغة الطابع الزمني ISO-8601. الغرض من هذه الصيغة هو جعل مقارنة الطوابع الزمنية بين نظامين، وأي تحليل آخر، أمراً سهلاً. تعريف طابع iso الزمني هو: YYYY-MM-DD<T>HH:MM:SS,<microseconds>←+><timezone offset from UTC>.

    تمتلك صيغة iso نفس مشكلة ctime: قد يكون الوقت غير دقيق عند تعليق النظام واستئنافه.

    يمكن استخدام --time-format عدة مرات بقيم مختلفة لـ تنسيق لإخراج كل صيغة محددة.

    يتبع delta دائماً ctime أو raw إذا حُددا معاً.

-u، --userspace
    اِطبع رسائل فضاء المستخدم (userspace).

-w، --follow
    انتظر الرسائل الجديدة. هذه الميزة متاحة فقط في الأنظمة التي تحتوي على /dev/kmsg قابل للقراءة (منذ النواة 3.5.0).

-W، --follow-new
    انتظر واطبع الرسائل الجديدة فقط.

-x، --decode
    فك ترميز أرقام المرفق والمستوى (الأولوية) إلى بادئات مقروءة للبشر.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

الألوان

نُفذ تلوين المخرجات بواسطة وظيفة terminal-colors.d(5). يمكن تعطيل التلوين الضمني بملف فارغ

    /etc/terminal-colors.d/dmesg.disable

للأمر dmesg أو لجميع الأدوات بواسطة

    /etc/terminal-colors.d/disable

منذ الإصدار 2.41، دُعم متغير البيئة $NO_COLOR أيضاً لتعطيل تلوين المخرجات ما لم يُمكن صراحةً بخيار من سطر الأوامر.

يتخطى $XDG_CONFIG_HOME/terminal-colors.d أو $HOME/.config/terminal-colors.d الخاص بالمستخدم الإعداد العام.

لاحظ أن تلوين المخرجات قد يُمكن مبدئياً، وفي هذه الحالة ليس من الضروري وجود أدلة terminal-colors.d بعد.

أسماء الألوان المنطقية التي يدعمها dmesg هي:

subsys
    بادئة النظام الفرعي للرسالة (مثلاً: "ACPI:").

time
    الطابع الزمني للرسالة.

timebreak
    الطابع الزمني للرسالة بتنسيق ctime قصير في مخرجات --reltime أو --human.

alert
    نص الرسالة مع أولوية سجل التنبيه.

crit
    نص الرسالة مع أولوية السجل الحرجة.

err
    نص الرسالة مع أولوية سجل الخطأ.

warn
    نص الرسالة مع أولوية سجل التحذير.

segfault
    نص الرسالة الذي يُخبر عن خطأ في التجزئة.

حالة الخروج

قد يفشل dmesg في الإبلاغ عن خطأ رفض الإذن. يرجع هذا عادةً إلى إعداد النواة dmesg_restrict، يرجى مراجعة syslog(2) لمزيد من التفاصيل.

المؤلفين

كُتب dmesg في الأصل بواسطة

انظر أيضاً

terminal-colors.d(5)، syslogd(8)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر dmesg جزء من حزمة util-linux التي يمكن تنزيلها من