/var/log/syslog
, поэтому вы можете продолжать использовать этот метод.Для Linux Mint 18 Cinnamon вы найдете программу системного журнала в меню, которая показывает Вам сообщения журнала из файла
/var/log/syslog
. Если вы хотите графическую программу вместо того, чтобы просматривать сообщения журнала напрямую, установите пакет gnome-logs. Он будет отображаться как программа в меню. Он покажет вам важные сообщения от текущей загрузки по умолчанию. Это удобная программа для того, чтобы быстро просмотреть, какие-либо сообщения об ошибках. Для большинства пользователей эта программа будет достаточно.А так-же, вы можете получить доступ к журналу с помощью команды
journalctl
, которая имеет больше способов фильтрации сообщений, и именно на этом будет сосредоточен этот учебник.Ниже приведу несколько практических примеров. Дополнительные сведения можно найти в руководстве по journalctl.Фильтр по загрузке или времени.
systemd отслеживает каждую загрузку. В простейшей форме Вы можете использовать
journalctl-b
, чтобы показывать только сообщения журнала из текущей загрузки. Скорее всего, вы заинтересованы в сообщениях журнала от предыдущей загрузки после того, как у вас была проблема, которая заставила вас перезагрузиться. Вы можете получить доступ journalctl -b -1
, чтобы вернуться к более ранним логам, нужно задать большее отрицательное число, (например, journalctl -b -2
, чтобы вернуться за 2 перезагрузки перед текущей). Вы также можете увидеть время начала каждой загрузке в журнале с помощью команды journalctl --list-boots
. В первом столбце отображается отрицательное число, которое можно использовать с параметром -b
. После этого можно также использовать 32-символьный идентификатор с параметром -b
, чтобы однозначно определить конкретную загрузку.Но, возможно, вы перезагрузились пару раз, чтобы попытаться исправить какую-то проблему, и вы хотите увидеть сообщения журнала всех этих ботинок. Вы можете передать опцию
-b
несколько раз, чтобы выбрать несколько ботинок. Но вы также можете фильтровать по времени. Вы можете отфильтровать из определенного времени с journalctl -S timestamp
(или journalctl --since=timestamp
), а так-же применить фильтр к определенному времени journalctl -U timestamp
(или journalctl --until=timestamp
). Для отметки времени можно использовать метку времени ISO типа "YYYY-MM-DD hh24:mm:ss" (если Вы не укажете дату, предполагается текущий день; если время не задано, предполагается 00:00:00; если не заданы секунды :предполагается 00).Вы также можете использовать ключевые слова
yesterday
и today
, которые предполагают 00:00:00 этого дня, и now
, который является текущим днем и временем. Однако существует еще много ключевых слов, так что вы можете запросить journalctl -S -5weeks+2days -U -2days
, который покажет вам все сообщения журнала от 5 недель и 2 дней назад до 2 дней назад. Просмотрите полное описание ключей в systemd.time manpage
, которые можно использовать в метке времени.Фильтр по приоритету.
В каждом журнале регистрируется сообщение с приоритетом: emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), и debug (7). Вы можете фильтровать сообщения журнала по приоритету
journalctl -p priority
или можно указать диапазон journalctl -p priority..priority
.Для приоритета можно использовать либо имя, либо номер из списка. В форме, где вы даете только один приоритет это также покажет вам наиболее важные сообщения. Так
journalctl -p err
(или journalctl -p 3
) покажет emerg, alert, and crit, а также сообщения. В форме, где вы даете два приоритета будут показаны сообщения с приоритетом в этом диапазоне. Так journalctl -p warning..notice
(journalctl -p 4..5
) будет показывать только предупреждения и уведомления.Кстати, обратите внимание, что сообщения journalctl err - красного цвета и выделяют предупреждения и сообщения. Сообщения приоритетной информации или отладки не окрашиваются и не выделяются.
Фильтр по службе, другим полям и программам
Если есть определенный сервис, с которым у вас возникли проблемы, вы можете быть заинтересованы только в сообщениях от этого сервиса. При инициализации systemd сервисов, у каждого есть так называемый блок файла, но это выходит за рамки данного учебника. В любом случае, вы можете отфильтровать сервисный блок с помощью команды
journalctl -u name
или journalctl UNIT=name.service
. Например, чтобы увидеть все сообщения cups (принтер) journalctl -u cups
или journalctl -u cups.service
или journalctl UNIT=cups.service
Можно угадать название, но есть другой способ - использовать
journalctl -o verbose
для отображения всех полей информации, которые имеются в журнале. Найдите сообщение журнала, которое вас интересует, запишите значение поля UNIT, а затем используйте его для фильтрации сообщений только от этой службы. Вы увидите намного больше полей в подробном выводе, и вы можете фильтровать по каждому полю здесь точно так же, как с полем UNIT
.Вы также можете дать путь исполняемого файла в качестве аргумента для journalctl и он будет отображать все записи, которые включают исполняемый файл в запросе (вы можете найти их также как _EXE поле в подробных выходных данных).
Другие варианты
Вы можете использовать
dmesg
для отображения сообщений ядра. В то время как команда dmesg
имеет различные способы фильтрации сообщений, она знает только сообщения от текущей загрузки.Можно использовать
journalctl -k
для отображения тех же сообщений ядра. В журнале также есть сообщения ядра от предыдущих загрузок, поэтому вы можете использовать вышеупомянутые опции для фильтрации по загрузке или времени, чтобы увидеть сообщения ядра перед текущей загрузкой. Он также будет окрашивать и выделять сообщения ядра на основе приоритета.Если вы хотите исследовать некоторые проблемы, вам будет полезен
journalctl -f
. Он отобразит 10 самых последних сообщений, а затем дождется новых сообщений и распечатает их по мере их поступления.