كيفية استخدام Journalctl لقراءة سجلات نظام Linux

لسنوات عديدة تم التعامل مع نظام وسجلات kernel بواسطة أداة مساعدة تسمى syslogd. لقد انتقلت معظم أنظمة التشغيل المستندة إلى Linux إلى systemd ، والذي يأتي مع دفتر سجل مختلف ، journald. للتفاعل مع هذه السجلات ، يمكنك استخدام الأداة المساعدة journalctl.

كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

منح إذن المستخدم لقراءة سجلات النظام

يمكن فقط للمستخدمين الذين ينتمون إلى مجموعات “adm” أو “systemd-journal” قراءة سجلات systemd. تضيفك توزيعات مثل Ubuntu بالفعل كمستخدم إلى مجموعة adm.

افتح محاكي Terminal واكتب الأمر التالي:

groups

كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

إذا رأيت “adm” أو “systemd-journal” في الإخراج ، يمكنك تخطي باقي الخطوات في هذا القسم. وإلا ، أضف نفسك إلى مجموعة “adm“.

sudo adduser $USER adm

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

newgrp adm

لا تغلق النافذة النهائية. أنت الآن جزء من مجموعة adm – في نافذة العمل Terminal ، ولكن ليس في جلسة العمل الرسومية. إذا فتحت محطة Terminal جديدة في هذا الوقت ، فلن يتم تسجيل دخول مستخدمك إلى المجموعة المعرفية بعد الآن.

تحقق إذا كان Journal مستمرة

يمكن أن تكون سجلات systemd ثابتة أو متقلبة. على Ubuntu والتوزيعات الأخرى ، فهي مستمرة بشكل افتراضي. في دبيان 9 ، فهي متقلبة ، بمعنى أنها تبقى في الذاكرة فقط (وليس القرص) وتختفي عند إيقاف التشغيل أو إعادة التشغيل. أدخل الأمر التالي.

journalctl --list-boots
كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

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

sudo sed -i '/Storage/ c\Storage=persistent' /etc/systemd/journald.conf

حدد “أي سجل إدخال تمهيد” لعرضه

عادة ، سترغب في رؤية سجل التمهيد الحالي. في حالات نادرة ، سترغب في مشاهدة السجل السابق ، عندما حدث خطأ ما ، على سبيل المثال ، بعد تعطل النظام.

لعرض السجل الخاص بالتمهيد الحالي:

journalctl -b 0
كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

بالنسبة إلى التمهيد السابق ، استخدم “-1” بدلاً من “0” ، ولحملتين قبل ، “-2” وهكذا.

journalctl -b -1

التنقل والبحث من خلال سجل النظام

بعد فتح السجل باستخدام journalctl ، يمكنك التنقل خلال النص باستخدام مفاتيح الأسهم ومفاتيح PAGE UP أو PAGE DOWN. مفاتيح أخرى مفيدة هي:

> للذهاب إلى نهاية الإخراج.

< للذهاب إلى بداية الإخراج.

/ للبحث عن سلسلة من النص. بعد الضغط على مفتاح الخط المائل ، أدخل السلسلة التي تريد البحث عنها ، متبوعة بـ Enter. السلسلة حساسة لحالة الأحرف ، لذلك لن تعثر “الشبكة” على سلاسل “الشبكة”. يبدأ البحث من موضع العرض الحالي ، لأسفل. للبحث عن أعلى ، استخدم؟

n للعثور على المطابقة التالية في البحث الحالي. N يجد السابق.

q إنهاء الأداة المساعدة journalctl.

كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

تصفية سجل الادخالات حسب الأولوية

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

لعرض رسائل الخطأ فقط من التمهيد الحالي ، أدخل:

journalctl -b 0 -p err

كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

إذا كنت ترغب في رؤية أخطاء من جميع التمهيد، فما عليك سوى إزالة المعلمة “-b“:

journalctl -p err

هذه هي الرموز التي يمكنك تمريرها إلى المعلمة “-p“:

  • alert
  • crit
  • debug
  • emerg
  • err
  • info
  • notice
  • warning

تصفية سجل الإدخالات حسب المسار إلى ملف العملية القابلة للتنفيذ أو وحدة Systemd

يتم تشغيل بعض العمليات وإدارتها من خلال ما يسمى بوحدات systemd. لرؤية كل السجلات المتعلقة بوحدة خدمة cron ، أدخل:

journalctl -u cron.service

يمكنك معرفة الوحدات المتوفرة لديك:

systemctl list-dependencies

كيفية استخدام Journalctl لقراءة سجلات نظام Linux - لينكس

يمكنك التنقل في القائمة باستخدام مفاتيح الأسهم لأعلى ولأسفل. اضغط q للخروج.

إذا كنت تفضل استخدام المسار إلى الملف القابل للتنفيذ في البرنامج (ثنائي) ، فما عليك سوى تمرير مساره الكامل كوسيطة.

journalctl /usr/sbin/cron

لا تنسَ ، يمكنك أيضًا التصفية من خلال إدخال التمهيد الحالي للتخلص من الرسائل غير الضرورية.

journalctl -b 0 /usr/sbin/cron

الخلاصة

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

زر الذهاب إلى الأعلى