journalctl — утилита просмотра системного журнала

From Wiren Board
This is the approved revision of this page, as well as being the most recent.
Просмотр системного журнала с помощью journalctl

Описание

journalctl — это консольная утилита для просмотра системного журнала ОС Linux, поэтому перед вводом команд подключитесь к контроллеру по SSH или отладочный порт.

Здесь приведены примеры, которые решают большинство задач. Полный список параметров смотрите командой journalctl --help и в документации на утилиту.

Перемещаться по выводу утилиты можно с помощью клавиш:

  • q — выйти из просмотра.
  • — вверх на одну строку.
  • — вниз на одну строку.
  • b — вверх на одну страницу
  • Пробел — вниз на одну страницу
  • g — перейти на первую строку
  • / — поиск по журналу
  • n — найти следующее вхождение
  • N — найти предыдущее вхождение

Архив

journald при каждой загрузке создаёт новый журнал, а старый закрывает. Список доступных журналов можно посмотреть командой:

# journalctl --list-boots
-2 301af672ad2b400fa9c6562a3403d179 Sat 2021-10-30 10:25:03 +04—Thu 2021-11-04 10:39:39 +04
-1 1238af7b5cfb4dd9a10bc54a1dd63067 Thu 2021-11-04 10:39:53 +04—Thu 2021-11-04 13:42:19 +04
 0 cc99bb41d7524321a70bddda34c1cceb Thu 2021-11-04 13:43:31 +04—Thu 2021-11-04 14:15:20 +04

По умолчанию journalctl выводит сообщения из всех доступных журналов, но вы можете сократить выборку, для этого укажите номер журнала в параметре -b:

journalctl -b -1

Просмотр журнала

Вывести все сообщения:

journalctl

Выводить новые сообщения:

journalctl -f

Открыть журнал и перемотать его к последней записи:

journalctl -e

Вывести последние 5 строк журнала:

journalctl -n 5

Фильтрация результатов

Лог последней загрузки операционной системы:

journalctl -b

Посмотреть сообщения ядра (dmesg):

journalctl -k

Посмотреть журнал определённого сервиса, например, wb-mqtt-serial:

journalctl -u wb-mqtt-serial

Просмотр сообщений от определённого сервиса в реальном времени:

journalctl -u wb-mqtt-serial -f

Фильтр по времени:

  • записи за последние сутки
    journalctl --since -1d
    
    можно использовать: w — недели, d — дни, h — часы, m — минуты
  • записи с определённого времени:
    journalctl --since "2020-02-13 07:00:00"
    
  • записи за период
    journalctl --since "2020-02-13 07:00:00" --until "2020-02-14 07:00:00"
    
  • записи за последний час
    journalctl --since "1 hour ago"
    

Вывод команды можно фильтровать по уровню важности сообщений:

  • 0: emergency — чрезвычайная ситуация
  • 1: alerts — предупреждения, требуется вмешательство
  • 2: critical — критическое состояние
  • 3: errors — ошибки
  • 4: warning — предупреждения
  • 5: notice — уведомления
  • 6: info — информационные сообщения
  • 7: debug — отладочные сообщения

Например, чтобы вывести все ошибки:

journalctl -p 3

Параметры можно комбинировать, например:

  • показать предупреждения, записанные драйвером wb-mqtt-serial с момента последней загрузки:
    journalctl -b 0 -p 4 -u wb-mqtt-serial
    
  • показать ошибки, записанные драйвером wb-mqtt-serial за последний час:
    journalctl --since "1 hour ago" -p 3 -u wb-mqtt-serial
    

Сохранение в текстовый файл

Вывод утилиты journalctl можно сохранить в файл, для этого добавьте в конец команды >> filename.txt, например, сохраним в файл сообщения драйвера wb-mqtt-serial:

journalctl -u wb-mqtt-serial >> /tmp/log-file.txt

Так как вывод команды будет сохранён в файл /tmp/log-file.txt, то на консоли вы ничего не увидите.

О том, как скопировать файл с контроллера на компьютер, читайте в статье Просмотр файлов контроллера с компьютера.

Занимаемое логами место

Посмотреть занимаемое системным журналом место:

journalctl --disk-usage

Удалить все сообщения, старше 1 недели:

journalctl --vacuum-time=1weeks

Удалить все сообщения таким образом, чтобы журнал занял 100 Мбайт:

journalctl --vacuum-size=100M

Настроить параметры ведения системного журнала можно в файле /etc/systemd/journald.conf.