В этом руководстве я расскажу, как просматривать журналы systemd в Linux с помощью различных утилит командной строки.
Примечание: Команды, упомянутые в этом руководстве, выполняются в Ubuntu. Они будут работать без ошибок во всех дистрибутивах Linux, которые поставляются с системой инициализации systemd.
Методы просмотра журналов systemctl
Существует два подхода к просмотру журналов systemd в Linux:
Systemctl предоставляет самые последние журналы конкретных служб, а журналctl предоставляет подробные общесистемные журналы всех служб и конкретной службы.
Я изучу обе утилиты для просмотра журналов systemd. Но сначала давайте поймем ключевое различие между командами systemctl и Journalctl.
Что такое systemctl
Systemctl — это утилита командной строки, которая управляет службами systemd, например включает или отключает службу и просматривает состояние. Статус системы Команда также печатает несколько строк журнала службы в нижней части вывода, и этот журнал создается после недавней загрузки. Однако эти строки журнала службы относятся только к текущей загрузке.
Что такое журналctl
Journalctl — это утилита командной строки, используемая для печати журналов, собранных systemd. По сравнению с systemctl, он обеспечивает подробный вывод с опциями фильтрации. Эта утилита предназначена для:
- Чтение журналов (самый старый журнал идет первым)
- Мониторинг журналов
- Фильтрация журналов по времени, услуге или пользователю
Systemd собирает журналы ядра, служб и демонов и хранит их централизованно.
Как просмотреть журнал службы с помощью systemctl
Общий синтаксис для поиска журнала службы с помощью системаctl утилита упомянута ниже.
Статус системы [ наименование услуги ]Например, чтобы просмотреть информацию журнала smbd.service используйте команду, приведенную ниже.
статус systemctl smbd.service
Чтобы получить вывод без нумерации страниц, добавьте -без пейджера опция в команде.
статус systemctl smbd.service --no-пейджер
Как просмотреть журнал службы с помощью Journalctl
Чтобы просмотреть журнал конкретной службы systemd, используйте журналctl с -в команда и служба или название подразделения.
журналctl -в [ наименование услуги ]В приведенной выше команде -в флаг, сокращение от -единица используется для фильтрации журналctl вывод по имени устройства.
Например, чтобы распечатать журнал smbd демон, я заменю [имя-юнита] с smbd.service .
журналctl -в smbd.service
В выводе видно, что самая старая запись идет первой, а затем регистрируется после каждой загрузки.
Чтобы получить последнюю запись, сначала используйте -Это Короче для –конец пейджера.
журналctl -в smbd.service -Это
Если вы хотите исключить нумерацию страниц из вывода, просто добавьте -без пейджера в вышеупомянутых командах.
Для непрерывной печати записей журнала в режиме реального времени. -ф Короче для -следовать .
журналctl -в smbd.service -фФильтрацию можно расширить, используя флаг -b, сокращенный для -ботинок , который печатает журналы на основе текущей загрузки.
журналctl -в [ имя устройства ] -бДавайте распечатаем логи smbd.service из недавней загрузки.
журналctl -в smbd.service -б
Приведенный выше вывод напоминает вывод, который мы получаем, используя Статус системы команда.
Чтобы получить подробный обзор журнала, используйте команду -Икс Короче для -каталог вариант.
журналctl -в smbd.service -ИксЭто добавит краткое описание журнала.
Теперь для печати журналов по времени с помощью Journalctl есть два варианта: -С Короче для -с и -В Короче для -до .
журналctl -в [ имя устройства ] -С '[год-месяц-день] [часы:минуты:секунды]'Например, чтобы просмотреть журналы устройства smbd от 2024:01:30 12:05:00 .
журналctl -в smbd.service -С '2024:01:30 12:05:00'
Заключение
Для просмотра журналов systemd службы существуют две основные утилиты: Journalctl и systemctl. Journalctl специально разработан для просмотра журналов systemd. Однако systemctl также имеет возможность распечатать журнал службы. Чтобы распечатать журнал использования услуги, журналctl -u [имя-юнита] и системаctl [имя объекта].