journalctl - Выводит записи из системного журнала systemd
СИНТАКСИС
journalctl [ОПЦИИ...] [СООТВЕТСТВИЯ...]
ОПИСАНИЕ
journalctl используется для вывода записей журнала, хранящихся в журнале systemd-journald.service(8)
и systemd-journal-remote.service(8).
Если вызывается без параметров, она отображает содержимое журнала, доступное вызывающему пользователю, начиная с самой старой записи.
Если передается один или несколько аргументов соответствия, вывод фильтруется соответствующим образом. Соответствие имеет формат "ПОЛЕ=ЗНАЧЕНИЕ", например "_SYSTEMD_UNIT=httpd.service", относящееся к компонентам структурированной записи журнала. См. systemd.journal-fields(7) для списка известных полей. Если указано несколько соответствий, относящихся к разным полям, вывод фильтруется по обоим, т. е. результирующий вывод будет отображать только записи, соответствующие всем указанным соответствиям этого типа. Если два соответствия относятся к одному и тому же полю, то они автоматически сопоставляются как альтернативы, т. е. результирующий вывод будет отображать записи, соответствующие любому из указанных соответствий для одного и того же поля. Наконец, символ "+" может появляться в качестве отдельного слова между другими терминами в командной строке. Это приводит к тому, что все соответствия до и после объединяются в дизъюнкцию (т. е. логическое ИЛИ).
Также можно фильтровать записи, указав абсолютный путь к файлу в качестве аргумента. Путь к файлу может быть файлом или символической ссылкой, и файл должен существовать во время запроса. Если путь к файлу указывает на исполняемый файл, к запросу добавляется соответствие "_EXE=", соответствующее канонизированному пути к файлу. Если путь к файлу указывает на исполняемый скрипт, к запросу добавляется соответствие "_COMM=", соответствующее имени скрипта. Если путь к файлу указывает на узел устройства, к запросу добавляются соответствия "_KERNEL_DEVICE=", соответствующие имени ядра устройства и каждому из его родительских устройств. Символические ссылки разрешаются, имена ядра синтезируются, а родительские устройства идентифицируются из среды во время запроса. В общем, узел устройства является лучшим прокси для фактического устройства, поскольку записи журнала обычно не содержат полей, идентифицирующих фактическое устройство. Чтобы результирующие записи журнала были правильными для фактического устройства, соответствующие части среды во время регистрации записи, в частности фактическое устройство, соответствующее узлу устройства, должны были быть такими же, как и во время запроса. Поскольку узлы устройств обычно меняют соответствующие им устройства при перезагрузке, указание пути к узлу устройства приводит к тому, что результирующие записи ограничиваются записями текущей загрузки.
Дополнительные ограничения могут быть добавлены с помощью опций --boot, --unit=, и т. д., чтобы дополнительно ограничить, какие записи будут отображаться (логическое И).
Вывод представляет собой чередующиеся данные из всех доступных файлов журнала, независимо от того, являются ли они файлами журналов, к которым выполняется ротация, или файлами, в которые в настоящее время ведется запись, а также независимо от того, принадлежат ли они самой системе или являются файлами журналов пользователей, к которым у вас есть доступ. Опция --header может использоваться для идентификации файлов, данные из которых отображаются.
Набор файлов журналов, которые будут использоваться, может быть изменен с помощью опций --user, --system, --directory=, и --file=, см. ниже.
Всем пользователям предоставляется доступ к их личным журналам для каждого пользователя. Однако по умолчанию только пользователю root и пользователям, являющимся членами нескольких специальных групп, предоставляется доступ к системному журналу и журналам других пользователей. Члены групп "systemd-journal", "adm" и "wheel" могут читать все файлы журналов. Обратите внимание, что для двух последних групп обычно определены дополнительные привилегии дистрибутивом. Члены группы "wheel" часто могут выполнять административные задачи.
По умолчанию вывод разбивается на страницы с помощью less, и длинные строки "обрезаются" до ширины экрана. Скрытую часть можно просмотреть с помощью клавиш со стрелками влево и вправо. Разбиение на страницы можно отключить; см. опцию --no-pager и раздел "Переменные среды" ниже.
При выводе в терминал строки окрашиваются в соответствии с приоритетом: строки уровня ERROR и выше окрашиваются в красный цвет; строки уровня WARNING окрашиваются в желтый цвет; строки уровня NOTICE выделяются; строки уровня INFO отображаются в обычном режиме; строки уровня DEBUG окрашиваются в серый цвет.
Для записи записей в журнал можно использовать несколько методов. В общем, вывод из системных юнитов автоматически подключается к журналу, см. systemd-journald.service(8). Кроме того, systemdcat(1) может использоваться для отправки сообщений непосредственно в журнал.
ОПЦИИ ИСТОЧНИКА
Следующие опции определяют, откуда читать записи журнала:
--system, --user
Отображать сообщения из системных служб и ядра (с опцией --system). Отображать сообщения из служб текущего пользователя (с опцией --user). Если ни одна из них не указана, отображать все сообщения, которые может видеть пользователь.
Опция --user влияет на то, как обрабатываются аргументы --unit=. См. --unit=.
Обратите внимание, что --user работает только в том случае, если включено постоянное ведение журналов с помощью настройки Storage= в файле journald.conf(5).
Добавлено в версии 205.
-M, --machine=
Отображать сообщения из запущенного локального контейнера. Укажите имя контейнера для подключения.
Добавлено в версии 209.
-m, --merge
Отображать записи, чередующиеся из всех доступных журналов, включая удаленные.
Добавлено в версии 190.
-D DIR, --directory=DIR
Принимает путь к каталогу в качестве аргумента. Если указано, journalctl будет работать с указанным каталогом журналов DIR вместо каталогов журналов времени выполнения и системы по умолчанию.
Добавлено в версии 187.
-i GLOB, --file=GLOB
Принимает шаблон файла в качестве аргумента. Если указано, journalctl будет работать с указанными файлами журналов, соответствующими шаблону GLOB, вместо каталогов журналов времени выполнения и системы по умолчанию. Может быть указано несколько раз, в этом случае файлы будут соответствующим образом чередоваться.
Добавлено в версии 205.
--root=ROOT
Принимает путь к каталогу в качестве аргумента. Если указано, journalctl будет работать с иерархией каталогов и файлов каталога журнала, расположенной под указанным каталогом, вместо корневого каталога (например, --update-catalog создаст ROOT/var/lib/systemd/catalog/database, а файлы журнала, расположенные в ROOT/run/journal/ или ROOT/var/log/journal/, будут отображаться).
Добавлено в версии 201.
--image=IMAGE
Принимает путь к файлу образа диска или блочному устройству в качестве аргумента. Если указано, journalctl будет работать с файловой системой, содержащейся в указанном образе диска. Этот параметр аналогичен --root=, но работает с файловыми системами, хранящимися в образах дисков или блочных устройствах, что обеспечивает простой способ извлечения данных журналов из образов дисков. Образ диска должен содержать либо только файловую систему, либо набор файловых систем в таблице разделов GPT в соответствии со спецификацией UAPI.2 Discoverable Partitions Specification[1]. Дополнительная информация о поддерживаемых образах дисков приведена в разделе systemd-spawn(1).
Добавлено в версии 247.
--image-policy=policy
Принимает строку политики образа в качестве аргумента, как описано в systemd.image-policy(7). Политика применяется при работе с образом диска, указанным через --image=, см. выше. Если не указано, используется политика "*", т.е. используются все распознанные файловые системы в образе.
--namespace=NAMESPACE
Принимает идентификатор пространства имен журнала в качестве аргумента. Если не указано, отображаются данные, собранные пространством имен по умолчанию. Если указано, отображаются данные журнала указанного пространства имен. Если пространство имен указано как "*", данные из всех пространств имен отображаются вперемешку. Если идентификатор пространства имен имеет префикс "+", данные из указанного пространства имен и пространства имен по умолчанию отображаются вперемешку, но никакие другие. Подробности о пространствах имен журнала см. в разделе systemd-journald.service(8).
Добавлено в версии 245.
ОПЦИИ ФИЛЬТРАЦИИ
Следующие параметры управляют тем, как фильтруются записи журнала:
-S, --since=, -U, --until=
Начать отображение записей, начиная с указанной даты или более поздней даты, или до указанной даты или более ранней даты, соответственно. Указания даты должны быть в формате "2012-10-30 18:17:16". Если часть времени опущена, предполагается "00:00:00". Если опущен только компонент секунд, предполагается ":00". Если опущен компонент даты, предполагается текущий день. Кроме того, понимаются строки "yesterday", "today", "tomorrow", которые относятся к 00:00:00 дня до текущего дня, текущего дня или дня после текущего дня, соответственно. "now" относится к текущему времени. Наконец, можно указать относительное время, с префиксом "-" или "+", относящееся к времени до или после текущего времени, соответственно. Полные указания времени и даты см. в разделе systemd.time(7). Обратите внимание, что --output=short-full выводит временные метки, которые точно соответствуют этому формату.
Добавлено в версии 195.
-c, --cursor=
Начать отображение записей с указанной позиции в журнале.
Добавлено в версии 193.
--after-cursor=
Начать отображение записей с позиции в журнале, следующей за указанной. Курсор отображается при использовании опции --show-cursor.
Добавлено в версии 206.
--cursor-file=FILE
Если FILE существует и содержит курсор, начать отображение записей после этой позиции. В противном случае отображать записи в соответствии с другими указанными опциями. В конце записать курсор последней записи в FILE. Используйте эту опцию для непрерывного чтения журнала путем последовательного вызова journalctl.
Добавлено в версии 242.
-b [[ID][±offset]|all], --boot[=[ID][±offset]|all]
Показать сообщения для определенной загрузки. Это добавит условие для "_BOOT_ID=".
Аргумент может быть пустым, в этом случае будут показаны журналы для текущей загрузки.
Если идентификатор загрузки опущен, положительный сдвиг будет искать загрузки, начиная с начала журнала, а отрицательный или равный нулю сдвиг будет искать загрузки, начиная с конца журнала. Таким образом, 1 означает первую загрузку, найденную в журнале в хронологическом порядке, 2 — вторую и так далее; в то время как -0 — последняя загрузка, -1 — предыдущая загрузка и так далее. Пустой сдвиг эквивалентен указанию -0, за исключением случаев, когда текущая загрузка не является последней (например, потому что --directory= указывает на просмотр журналов с другой машины).
Если указан 32-символьный идентификатор, за ним может следовать необязательный сдвиг, который идентифицирует загрузку относительно загрузки, заданной идентификатором загрузки. Отрицательные значения указывают на более ранние загрузки, а положительные — на более поздние. Если сдвиг не указан, предполагается значение 0, и отображаются журналы для загрузки, заданной идентификатором.
Специальный аргумент all можно использовать для отмены эффекта предыдущего использования -b.
Добавлено в версии 186.
-u, --unit=UNIT|PATTERN
Показать сообщения для указанного системного блока systemd UNIT (например, блока службы) или для любого из блоков, соответствующих PATTERN. Если указан шаблон, список имен блоков, найденных в журнале, сравнивается с указанным шаблоном, и используются все совпадающие. Для каждого имени блока добавляется условие для сообщений из блока ("_SYSTEMD_UNIT=UNIT"), а также дополнительные условия для сообщений из systemd и сообщений о дампах памяти для указанного блока. Также добавляется условие для "_SYSTEMD_SLICE=UNIT", так что, если предоставленный UNIT является блоком systemd.slice(5), будут показаны все журналы дочерних элементов блока.
При использовании --user все аргументы --unit= будут преобразованы для соответствия сообщениям пользователя, как если бы они были указаны с помощью --user-unit=.
Этот параметр можно указать несколько раз.
Добавлено в версии 195.
--user-unit=
Показать сообщения для указанного блока пользовательской сессии. Это добавит условие для сообщений из блока ("_SYSTEMD_USER_UNIT=" и "_UID=") и дополнительные условия для сообщений из systemd сессии и сообщений о дампах памяти для указанного блока. Также добавляется условие для "_SYSTEMD_USER_SLICE=UNIT", так что, если предоставленный UNIT является блоком systemd.slice(5), будут показаны все журналы дочерних элементов блока.
Этот параметр можно указывать несколько раз.
Добавлено в версии 198.
-I, --invocation=ID[±offset]|offset
Показывать сообщения для конкретного экземпляра юнита. Это добавит соответствие для "_SYSTEMD_INVOCATION_ID=", "OBJECT_SYSTEMD_INVOCATION_ID=", "INVOCATION_ID=", "USER_INVOCATION_ID=".
Положительный сдвиг будет искать экземпляры юнита systemd, начиная с начала журнала, а нулевой или отрицательный сдвиг будет искать экземпляры, начиная с конца журнала. Таким образом, 1 означает первый экземпляр, найденный в журнале в хронологическом порядке, 2 — второй и так далее; в то время как 0 — последний экземпляр, -1 — экземпляр перед последним и так далее.
Если указан 32-символьный идентификатор, после него может быть указан необязательный параметр ±offset, который определяет экземпляр относительно указанного идентификатора. Отрицательные значения означают более ранние экземпляры, а положительные — более поздние. Если параметр ±offset не указан, предполагается значение, равное нулю, и отображаются журналы для экземпляра, указанного в ID.
-I эквивалентно --invocation=0, и будут отображены журналы для последнего экземпляра.
При указании сдвига необходимо указать имя юнита с помощью опций -u/--unit= или --user-unit=.
При указании с параметром -b/--boot= экземпляры будут искаться в указанной загрузке.
Добавлено в версии 257.
-t, --identifier=SYSLOG_IDENTIFIER
Показывать сообщения для указанного идентификатора syslog SYSLOG_IDENTIFIER.
Этот параметр можно указывать несколько раз.
Добавлено в версии 217.
-T, --exclude-identifier=SYSLOG_IDENTIFIER
Исключать сообщения для указанного идентификатора syslog SYSLOG_IDENTIFIER.
Этот параметр можно указывать несколько раз.
Добавлено в версии 256.
-p, --priority=
Фильтровать вывод по приоритетам сообщений или диапазонам приоритетов. Принимает либо одно числовое или текстовое значение уровня журнала (например, от 0/"emerg" до 7/"debug"), либо диапазон числовых/текстовых уровней журнала в форме FROM..TO. Уровни журнала соответствуют обычным уровням журнала syslog, как описано в syslog(3), то есть "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7). Если указан один уровень журнала, будут показаны все сообщения с этим уровнем журнала или более низким (следовательно, более важным) уровнем журнала. Если указан диапазон, будут показаны все сообщения в этом диапазоне, включая начальное и конечное значения диапазона. Это добавит соответствия "PRIORITY=" для указанных приоритетов.
Добавлено в версии 188.
--facility=
Фильтровать вывод по подсистеме syslog. Принимает список чисел или имен подсистем, разделенных запятыми. Имена соответствуют обычным подсистемам syslog, как описано в syslog(3). --facility=help можно использовать для отображения списка известных имен подсистем и выхода.
Добавлено в версии 245.
-g, --grep=
Фильтрует вывод, оставляя только записи, в которых поле MESSAGE= соответствует указанному регулярному выражению.
Используются регулярные выражения, совместимые с Perl, подробное описание синтаксиса можно найти в pcre2pattern(3).
Если шаблон состоит только из строчных букв, сопоставление выполняется без учета регистра. В противном случае сопоставление выполняется с учетом регистра. Это можно изменить с помощью опции --case-sensitive, см. ниже.
При использовании с --lines= (без префикса "+"), подразумевается --reverse.
Добавлено в версии 237.
--case-sensitive[=BOOLEAN]
Делает сопоставление шаблонов с учетом регистра или без учета регистра.
Добавлено в версии 237.
-k, --dmesg
Отображает только сообщения ядра. Это добавляет условие сопоставления "\_TRANSPORT=kernel". Это подразумевает --boot=0, если не указано иное.
Добавлено в версии 205.
ОПЦИИ ВЫВОДА
Следующие опции управляют форматированием выводимых записей журнала:
-o, --output=
Управляет форматированием записей журнала, которые отображаются. Принимает одно из следующих значений:
short
является значением по умолчанию и генерирует вывод, который в основном идентичен формату классических файлов syslog, отображая одну строку на запись журнала.
Добавлено в версии 206.
short-full
очень похоже, но отображает временные метки в формате, который принимают опции --since= и --until=. В отличие от информации о временных метках, отображаемой в режиме короткого вывода, этот режим включает день недели, год и информацию о часовом поясе в выходных данных, и не зависит от локали.
Добавлено в версии 232.
short-iso
очень похоже, но отображает временные метки в профиле RFC 3339[2] стандарта ISO 8601.
Добавлено в версии 206.
short-iso-precise
аналогично short-iso, но включает полную точность до микросекунд.
Добавлено в версии 234.
short-precise
аналогично, но отображает классические временные метки syslog с полной точностью до микросекунд.
Добавлено в версии 207.
short-monotonic
аналогично, но отображает монотонные временные метки вместо временных меток реального времени.
Добавлено в версии 206.
short-delta
аналогично short-monotonic, но включает разницу во времени с предыдущей записью. Ненадежные разницы во времени помечаются символом "*".
Добавлено в версии 252.
short-unix
аналогично, но отображает секунды, прошедшие с 1 января 1970 года UTC, вместо временных меток реального времени ("время UNIX"). Время отображается с точностью до микросекунд.
Добавлено в версии 230.
verbose
отображает все поля структурированной записи.
Добавлено в версии 206.
export
сериализует журнал в бинарный (но в основном текстовый) поток, подходящий для создания резервных копий и передачи по сети (см. формат экспорта журнала[3] для получения дополнительной информации). Чтобы импортировать бинарный поток обратно в исходный формат journald, используйте systemd-journal-remote(8).
Добавлено в версии 206.
json
форматирует записи в виде объектов JSON, разделенных символами новой строки (см. формат JSON журнала[4] для получения дополнительной информации). Значения полей обычно кодируются как строки JSON, за тремя исключениями:
Поля, размер которых превышает 4096 байт, кодируются как значения null. (Это можно отключить, передав --all, но имейте в виду, что это может привести к созданию слишком длинных объектов JSON.)
Записи в журнале разрешают использование не-уникальных полей в одной и той же записи журнала. JSON не
разрешает использование не-уникальных полей внутри объектов. В связи с этим, если встречается не-уникальное поле,
используется JSON-массив в качестве значения поля, перечисляя все значения поля в виде элементов.
Поля, содержащие непечатаемые или не-UTF8 байты, кодируются в виде массивов, содержащих отдельные байты в необработанном виде, отформатированные как беззнаковые числа.
Обратите внимание, что эта кодировка обратима (за исключением ограничения размера).
Добавлено в версии 206.
json-pretty
форматирует записи в виде структур данных JSON, но форматирует их в несколько строк, чтобы
сделать их более удобочитаемыми для людей.
Добавлено в версии 206.
json-sse
форматирует записи в виде структур данных JSON, но оборачивает их в формат, подходящий для
Server-Sent Events[5].
Добавлено в версии 206.
json-seq
форматирует записи в виде структур данных JSON, но добавляет в начало символ ASCII Record Separator
(0x1E) и в конце символ ASCII Line Feed (0x0A) в соответствии с JavaScript Object Notation (JSON) Text Sequences[6]
("application/json-seq").
Добавлено в версии 240.
cat
генерирует очень краткий вывод, отображая только фактическое сообщение каждой записи журнала без
каких-либо метаданных, даже без метки времени. Если используется вместе с опцией `--output-fields=`,
будет выводить перечисленные поля для каждой записи журнала вместо сообщения.
Добавлено в версии 206.
with-unit
аналогично short-full, но добавляет в начало имена юнита и пользовательского юнита вместо
традиционного идентификатора syslog. Полезно при использовании шаблонизированных экземпляров,
поскольку это позволит включить аргументы в имена юнитов.
Добавлено в версии 239.
--truncate-newline
Усекает каждое сообщение журнала до первого символа новой строки в выводе, так что отображается только первая
строка каждого сообщения.
Добавлено в версии 254.
--output-fields=
Список, разделенный запятыми, полей, которые должны быть включены в вывод. Это влияет только на режимы вывода,
которые обычно показывают все поля (verbose, export, json, json-pretty, json-sse и json-seq), а также на cat.
Для первых, поля "__CURSOR", "_REALTIME_TIMESTAMP", "__MONOTONIC_TIMESTAMP" и "_BOOT_ID" всегда выводятся.
Добавлено в версии 236.
-n, --lines=
Показывает последние события журнала и ограничивает количество отображаемых событий. Аргумент — положительное целое число или "all", чтобы отключить ограничение. Кроме того, если число начинается с "+", используются самые старые события журнала. Значение по умолчанию — 10, если аргумент не указан.
Если используется `--follow`, эта опция неявно включена. Если не начинается с "+", и используется с `--grep=`, неявно включается `--reverse`.
-r, --reverse
Изменяет порядок вывода, чтобы сначала отображались самые новые записи.
Добавлено в версии 198.
--show-cursor
Курсор отображается после последней записи, после двух дефисов:
-- cursor: s=0639...
Формат курсора является приватным и может быть изменен.
Добавлено в версии 209.
--utc
Отображает время в координированном универсальном времени (UTC).
Добавлено в версии 217.
-x, --catalog
Дополняет строки журнала пояснительными текстами из файла сообщений. Это добавит пояснительные справочные тексты к сообщениям журнала в выходных данных, если они доступны. Эти краткие справочные тексты объясняют контекст ошибки или события журнала, возможные решения, а также указывают на форумы поддержки, документацию для разработчиков и любые другие соответствующие руководства. Обратите внимание, что справочные тексты доступны не для всех сообщений, а только для выбранных. Для получения дополнительной информации о файле сообщений см. Journal Message Catalogs[7].
Примечание: при добавлении выходных данных journalctl в отчеты об ошибках не используйте -x.
Добавлено в версии 196.
-W, --no-hostname
Не показывать поле имени хоста в сообщениях журнала. Этот параметр влияет только на семейство выходных данных в краткой форме (см. выше).
Примечание: этот параметр не удаляет упоминания имени хоста из самих записей журнала, поэтому он
не предотвращает отображение имени хоста в журналах.
Добавлено в версии 230.
--no-full, --full, -l
Обрезать поля, если они не помещаются в доступных столбцах. По умолчанию отображаются полные поля, которые могут переноситься или усекаться пагинатором, если он используется.
Старые параметры -l/--full больше не полезны, за исключением отмены действия --no-full.
Добавлено в версии 196.
-a, --all
Показывать все поля полностью, даже если они содержат непечатаемые символы или очень длинные. По умолчанию поля, содержащие непечатаемые символы, сокращаются как «blob data». (Обратите внимание, что пагинатор может снова экранировать непечатаемые символы.)
-f, --follow
Показывать только последние записи журнала и непрерывно выводить новые записи по мере их добавления в журнал, пока не будет нажата клавиша Ctrl-C (или инструмент не будет завершен другим способом).
journalctl отправляет сообщение sd_notify(3) «READY=1» после инициализации и успешного
установления наблюдения за журналом.
--no-tail
Показывать все сохраненные строки вывода, даже в режиме отслеживания. Отменяет действие --lines=.
-q, --quiet
Подавляет все информационные сообщения (т. е. «-- Journal begins at ...», «-- Reboot --»), любые предупреждающие сообщения об недоступных системных журналах при запуске от имени обычного пользователя.
--synchronize-on-exit=
Принимает логический аргумент. Если значение равно true и используется режим --follow, при получении SIGTERM/SIGINT отправляется запрос на синхронизацию журнала (эквивалентный journalctl --sync), и вывод журнала продолжается до завершения этого запроса. Это полезно для синхронизации вывода журнала с временем работы служб или внешних событий, гарантируя, что любые данные журнала, помещенные в подсистему регистрации к моменту получения SIGTERM/SIGINT, будут гарантированно обработаны и отображены к моменту завершения вывода журнала. По умолчанию имеет значение false.
Добавлено в версии 258.
ОПЦИИ УПРАВЛЕНИЯ ПАГИНАТОРОМ
Следующие параметры управляют поддержкой пагинатора:
--no-pager
Не передавать вывод в пагинатор.
-e, --pager-end
Немедленно перейти в конец журнала в используемом пагинаторе. Это подразумевает --lines=1000 и --boot=0, если не указано иное, чтобы гарантировать, что пагинатор не будет буферизировать журналы неограниченного размера. Обратите внимание, что этот параметр поддерживается только для пагинатора less(1).
Добавлено в версии 198.
ОПЦИИ БЕЗОПАСНОЙ ПЕЧАТИ (FSS)
Следующие опции могут использоваться вместе с командой --setup-keys, описанной ниже:
--interval=
Указывает интервал смены ключа шифрования при генерации пары ключей FSS с помощью --setup-keys. Более короткие интервалы увеличивают нагрузку на процессор, но сокращают временной диапазон, в течение которого можно незаметно изменить журнал. По умолчанию 15 минут.
Обратите внимание, что --output=json-sse и --output=json-seq будут неявно преобразованы в --output=json.
Добавлено в версии 189.
--verify-key=
Указывает ключ проверки FSS, который будет использоваться для операции --verify.
Добавлено в версии 189.
--force
Когда передается --setup-keys, и безопасная печать (FSS) уже настроена,
пересоздает ключи FSS.
Добавлено в версии 206.
КОМАНДЫ
Поддерживаются следующие команды. Если ни одна из них не указана, по умолчанию отображаются записи журнала:
-N, --fields
Выводит все имена полей, которые в настоящее время используются во всех записях журнала.
Добавлено в версии 229.
-F, --field=
Выводит все возможные значения данных, которые может принимать указанное поле во всех записях журнала.
Добавлено в версии 195.
--list-boots
Отображает в виде таблицы список номеров загрузок (относительно текущей загрузки), их идентификаторы и временные метки первой и последней записи, относящейся к загрузке. При указании с опцией -n/--lines=[+]N отображаются только первые (если число начинается с "+") или последние (без префикса) N записей. При указании с опцией -r/--reverse список отображается в обратном порядке.
Добавлено в версии 209.
--list-invocations
Отображает идентификаторы вызовов для заданной единицы. Требуется указать имя единицы с помощью опции -u/--unit= или --user-unit=. Отображает в виде таблицы список номеров вызовов (относительно текущего или последнего вызова), их идентификаторы и временные метки первой и последней записи, относящейся к вызову. Если указана опция -b/-boot, отображаются вызовы в данной загрузке. При указании с опцией -n/--lines=[+]N отображаются только первые (если число начинается с "+") или последние (без префикса) N записей. При указании с опцией -r/--reverse список отображается в обратном порядке.
Добавлено в версии 257.
--disk-usage
Отображает текущее использование дискового пространства всеми файлами журнала. Это показывает сумму дискового пространства, используемого всеми архивными и активными файлами журнала.
Добавлено в версии 190.
--vacuum-size=, --vacuum-time=, --vacuum-files=
--vacuum-size= удаляет старые архивные файлы журнала до тех пор, пока объем дискового пространства, который они занимают, не уменьшится до указанного размера. Принимает обычные суффиксы "K", "M", "G" и "T" (в основании 1024).
--vacuum-time= удаляет архивные файлы журнала, которые старше указанного временного интервала. Принимает обычные суффиксы "s" (по умолчанию), "m", "h", "days", "weeks", "months" и "years", подробности см. в systemd.time(7).
--vacuum-files= оставляет только указанное количество отдельных файлов журнала.
Следует отметить, что использование параметра --vacuum-size= оказывает лишь косвенное влияние на вывод команды --disk-usage, поскольку последняя включает активные файлы журнала, в то время как операция очистки работает только с архивными файлами журнала. Аналогично, параметр --vacuum-files= может не уменьшить фактическое количество файлов журнала до указанного значения, поскольку он не удаляет активные файлы журнала.
Параметры --vacuum-size=, --vacuum-time= и --vacuum-files= могут быть объединены в одном вызове, чтобы применить любую комбинацию ограничений по размеру, времени и количеству файлов к архивным файлам журнала. Указание любого из этих трех параметров как нуля эквивалентно отсутствию применения конкретного ограничения и, следовательно, является избыточным.
Эти три параметра также могут быть объединены с параметром --rotate в одну команду. Если это сделано, сначала все активные файлы ротируются, а затем выполняется запрошенная операция очистки. Ротация имеет тот эффект, что все текущие активные файлы архивируются (и, возможно, открываются новые, пустые файлы журнала в качестве замены), и, следовательно, операция очистки оказывает наибольшее влияние, поскольку она может учитывать все записанные до этого данные журналов.
Добавлено в версии 218.
`--verify`
Проверяет файл журнала на внутреннюю согласованность. Если файл был сгенерирован с включенной FSS, а ключ проверки FSS был указан с помощью --verify-key=, выполняется проверка подлинности файла журнала.
Добавлено в версии 189.
`--sync`
Просит демон журнала записать все еще не записанные данные журнала в основную файловую систему и синхронизировать все журналы. Этот вызов не возвращает управление, пока операция синхронизации не будет завершена. Эта команда гарантирует, что все сообщения журнала, записанные до ее вызова, будут безопасно сохранены на диске к моменту ее завершения.
Добавлено в версии 228.
`--relinquish-var`
Просит демон журнала выполнить обратную операцию по отношению к --flush: если запрошено, демон будет записывать дальнейшие данные журнала в /run/log/journal/ и прекратит запись в /var/log/journal/. Последующий вызов --flush приведет к тому, что вывод журнала вернется в /var/log/journal/, см. выше.
Добавлено в версии 243.
`--smart-relinquish-var`
Аналогично --relinquish-var, но не выполняет никаких действий, если корневая файловая система и /var/log/journal/ находятся на одной и той же точке монтирования. Эта операция используется во время выключения системы, чтобы демон журнала перестал записывать данные в /var/log/journal/, если этот каталог находится в точке монтирования, которую необходимо отмонтировать.
Добавлено в версии 243.
`--flush`
Просит демон журнала сбросить любые данные журнала, хранящиеся в /run/log/journal/, в /var/log/journal/, если включено постоянное хранилище. Этот вызов не возвращает управление, пока операция не будет завершена. Следует отметить, что этот вызов является идемпотентным: данные сбрасываются из /run/log/journal/ в /var/log/journal/ только один раз во время работы системы (но см. --relinquish-var ниже), и эта команда завершается без выполнения каких-либо действий, если это уже произошло. Эта команда фактически гарантирует, что все данные будут сброшены в /var/log/journal/ к моменту ее завершения.
Добавлено в версии 217.
--rotate
Запрашивает у демона журнала ротацию файлов журнала. Этот вызов не возвращает управление, пока операция ротации не будет завершена. Ротация файлов журнала имеет следующий эффект: все текущие активные файлы журнала помечаются как архивные и переименовываются, чтобы в них больше не записывались данные. Затем создаются новые (пустые) файлы журнала на их месте. Эту операцию можно объединить с параметрами --vacuum-size=, --vacuum-time= и --vacuum-file= в одну команду, см. выше.
Добавлено в версии 227.
--header
Вместо отображения содержимого журнала отображает внутреннюю информацию заголовка полей журнала, к которым осуществляется доступ.
Этот параметр особенно полезен при попытке выявить журнальные записи, которые идут не по порядку, что, например, происходит, когда машина загружается с неправильным системным временем.
Добавлено в версии 187.
--list-catalog [128-битный-ID...]
Отображает содержимое каталога сообщений в виде таблицы идентификаторов сообщений и их кратких описаний.
Если указаны какие-либо 128-битные идентификаторы, отображаются только эти записи.
Добавлено в версии 196.
--dump-catalog [128-битный-ID...]
Отображает содержимое каталога сообщений, причем записи разделены строкой, состоящей из двух дефисов и идентификатора (формат такой же, как в файлах .catalog).
Если указаны какие-либо 128-битные идентификаторы, отображаются только эти записи.
Добавлено в версии 196.
--update-catalog
Обновляет индекс каталога сообщений. Эту команду необходимо выполнять каждый раз, когда добавляются, удаляются или обновляются новые файлы каталога, чтобы перестроить двоичный индекс каталога.
Добавлено в версии 199.
--setup-keys
Вместо отображения содержимого журнала генерирует новую пару ключей для безопасной прямой запечатки (FSS). Это создаст ключ запечатки и ключ проверки. Ключ запечатки хранится в каталоге данных журнала и должен оставаться на хосте. Ключ проверки следует хранить внешне. См. опцию Seal= в файле journald.conf(5) для получения информации о безопасной прямой запечатке, а также ссылку на рецензируемую научную статью, в которой подробно описывается лежащая в ее основе криптографическая теория.
Добавлено в версии 189.
-h, --help
Выводит краткий текст справки и завершает работу.
--version
Выводит короткую строку версии и завершает работу.
СТАТУС ВЫХОДА
При успешном выполнении возвращается 0; в противном случае возвращается ненулевой код ошибки.
ОКРУЖАЮЩАЯ СРЕДА
$SYSTEMD_LOG_LEVEL
Максимальный уровень регистрации исходящих сообщений (сообщения с более высоким уровнем регистрации, то есть менее важные, будут подавлены). Принимает список значений, разделенных запятыми. Значение может быть либо одним из следующих (в порядке убывания важности): emerg, alert, crit, err, warning, notice, info, debug, либо целым числом в диапазоне 0...7. Подробности см. в syslog(3). Каждое значение может быть опционально дополнено одним из префиксов: console, syslog, kmsg или journal, за которым следует двоеточие, чтобы задать максимальный уровень регистрации для конкретной цели регистрации (например, SYSTEMD_LOG_LEVEL=debug,console:info указывает, что регистрация должна выполняться на уровне отладки, за исключением регистрации в консоли, которая должна выполняться на уровне информации). Следует отметить, что глобальный максимальный уровень регистрации имеет приоритет над любыми уровнями регистрации для конкретной цели.
$SYSTEMD_LOG_COLOR
Булево значение. Если установлено в true, сообщения, выводимые в терминал, будут окрашены в соответствии с приоритетом.
Эта настройка полезна только в том случае, когда сообщения выводятся непосредственно в терминал, поскольку
journalctl(1) и другие инструменты, отображающие журналы, будут окрашивать сообщения на основе уровня журнала самостоятельно.
$SYSTEMD_LOG_TIME
Булево значение. Если установлено в true, сообщения журнала, выводимые в консоль, будут иметь префикс в виде временной метки.
Эта настройка полезна только в том случае, когда сообщения выводятся непосредственно в терминал или файл, поскольку
journalctl(1) и другие инструменты, отображающие журналы, будут добавлять временные метки на основе
метаданных записи журнала.
$SYSTEMD_LOG_LOCATION
Булево значение. Если установлено в true, сообщения будут иметь префикс, содержащий имя файла и номер строки в исходном коде, откуда происходит сообщение.
Обратите внимание, что информация о местоположении журнала часто добавляется в виде метаданных к записям журнала. Однако включение этой информации непосредственно в текст сообщения может быть полезным при отладке программ.
$SYSTEMD_LOG_TID
Булево значение. Если установлено в true, сообщения будут иметь префикс, содержащий текущий числовой идентификатор потока (TID).
Обратите внимание, что эта информация также добавляется в виде метаданных к записям журнала. Однако включение этой информации непосредственно в текст сообщения может быть полезным при отладке программ.
$SYSTEMD_LOG_TARGET
Место назначения для сообщений журнала. Одно из значений: console (вывод в подключенный терминал), console-prefixed
(вывод в подключенный терминал с префиксами, содержащими уровень журнала и "facility", см. `syslog(3)`), kmsg (вывод в буфер журнала ядра), journal (вывод в журнал), journal-or-kmsg (вывод в журнал, если он доступен, и в kmsg в противном случае), auto (определение подходящего места назначения журнала автоматически, значение по умолчанию), null (отключение вывода журнала).
$SYSTEMD_LOG_RATELIMIT_KMSG
Определяет, следует ли ограничивать скорость сообщений, отправляемых в kmsg. Принимает булево значение. По умолчанию "true".
Если отключено, systemd не будет ограничивать скорость сообщений, отправляемых в kmsg.
$SYSTEMD_PAGER, $PAGER
Программа постраничного просмотра, используемая при отсутствии флага `--no-pager`. Если определена переменная `$SYSTEMD_PAGER`, она используется; в противном случае используется `$PAGER`.
Если ни `$SYSTEMD_PAGER`, ни `$PAGER` не установлены, systemd попытается использовать ряд известных программ постраничного просмотра, включая [less]({filename}../../less)(1) и more(1), пока не найдет одну из них.
Если ни одна программа постраничного просмотра не найдена, программа постраничного просмотра не будет вызвана. Установка этих переменных окружения в пустую строку или значение "cat" эквивалентна передаче флага `--no-pager`.
Примечание: если переменная `$SYSTEMD_PAGERSECURE` не установлена, `$SYSTEMD_PAGER` и `$PAGER` могут использоваться только для отключения программы постраничного просмотра ("cat" или "") и в противном случае игнорируются.
$SYSTEMD_LESS
Переопределение параметров, передаваемых программе less (по умолчанию "FRSXMK").
Пользователи могут захотеть изменить два параметра:
K
Этот параметр предписывает программе постраничного просмотра немедленно выходить при нажатии Ctrl+C.
Чтобы позволить программе less обрабатывать Ctrl+C самостоятельно, чтобы вернуться к командной строке программы постраничного просмотра, отключите этот параметр.
Если значение переменной `$SYSTEMD_LESS` не включает "K", и вызываемая программа постраничного просмотра — less, нажатие Ctrl+C будет игнорироваться исполняемой программой и должно обрабатываться программой постраничного просмотра.
X
Эта опция указывает программе постраничного просмотра не отправлять строки инициализации и деинициализации termcap в терминал. По умолчанию она включена, чтобы обеспечить отображение вывода команды в терминале даже после выхода программы постраничного просмотра. Однако это препятствует работе некоторых функций программы постраничного просмотра, в частности, прокрутка постраничного вывода с помощью мыши становится невозможной.
Обратите внимание, что установка обычной переменной окружения $LESS не оказывает никакого влияния на вызовы less, выполняемые инструментами systemd.
См. less(1) для получения дополнительной информации.
$SYSTEMD_LESSCHARSET
Переопределяет кодировку, передаваемую в less (по умолчанию «utf-8», если обнаружено, что вызывающий терминал совместим с UTF-8).
Обратите внимание, что установка обычной переменной окружения $LESSCHARSET не оказывает никакого влияния на вызовы less, выполняемые инструментами systemd.
$SYSTEMD_PAGERSECURE
Обычные команды программы постраничного просмотра, такие как less(1), помимо «постраничного просмотра», т.е. прокрутки вывода, поддерживают открытие или запись в другие файлы, а также выполнение произвольных команд оболочки. Когда команды вызываются с повышенными привилегиями, например, под sudo(8) или pkexec(1), программа постраничного просмотра становится границей безопасности. Необходимо следить за тем, чтобы в качестве программ постраничного просмотра использовались только программы с ограниченной функциональностью, и чтобы не допускались непреднамеренные интерактивные функции, такие как открытие или создание новых файлов или запуск новых подпроцессов. «Безопасный режим» для программы постраничного просмотра можно включить, как описано ниже, если программа постраничного просмотра поддерживает это (большинство программ постраничного просмотра не разработаны с учетом этого). Рекомендуется либо явно включить «безопасный режим», либо полностью отключить программу постраничного просмотра, используя --no-pager или PAGER=cat, когда разрешено выполнение команд с повышенными привилегиями для ненадежных пользователей.
Эта опция принимает логическое значение. При установке в true включается «безопасный режим» программы постраничного просмотра. В «безопасном режиме» переменная LESSSECURE=1 будет установлена при вызове программы постраничного просмотра, что предписывает ей отключать команды, открывающие или создающие новые файлы или запускающие новые подпроцессы. В настоящее время только less(1) известно, что понимает эту переменную и реализует «безопасный режим».
При установке в false никакие ограничения на программу постраничного просмотра не накладываются. Установка SYSTEMD_PAGERSECURE=0 или ее отсутствие в унаследованной среде может позволить пользователю вызывать произвольные команды.
Если $SYSTEMD_PAGERSECURE не установлена, инструменты systemd пытаются автоматически определить, следует ли включать «безопасный режим» и поддерживает ли его программа постраничного просмотра. «Безопасный режим» включается, если эффективный UID не совпадает с UID владельца сеанса входа в систему, см. geteuid(2) и sd_pid_get_owner_uid(3), или при запуске под sudo(8) или аналогичными инструментами (установлена переменная $SUDO_UID [8]). В этих случаях SYSTEMD_PAGERSECURE=1 будет установлена, и программы постраничного просмотра, которые не поддерживают «безопасный режим», использоваться не будут. Обратите внимание, что это автоматическое обнаружение охватывает только наиболее распространенные механизмы повышения привилегий и предназначено для удобства. Рекомендуется явно установить $SYSTEMD_PAGERSECURE или отключить программу постраничного просмотра.
Обратите внимание, что если переменные $SYSTEMD_PAGER или $PAGER должны учитываться, кроме как для отключения пейджера, то также необходимо установить $SYSTEMD_PAGERSECURE.
$SYSTEMD_COLORS
Принимает логическое значение. Если установлено значение true, то systemd и связанные с ним утилиты будут использовать цвета в своем выводе, в противном случае вывод будет монохромным. Кроме того, переменная может принимать одно из следующих специальных значений: "16", "256", чтобы ограничить использование цветов базовыми 16 или 256 цветами ANSI соответственно. Это можно указать, чтобы переопределить автоматическое определение на основе $TERM и типа подключения к консоли.
$SYSTEMD_URLIFY
Значение должно быть логическим. Определяет, следует ли генерировать кликабельные ссылки в выводе для терминалов, поддерживающих эту функцию. Это можно указать, чтобы переопределить решение, которое systemd принимает на основе $TERM и других условий.
ПРИМЕРЫ
Без аргументов отображаются все собранные журналы без фильтрации:
journalctl
При указании одного соответствия отображаются все записи, у которых одно из полей соответствует выражению:
journalctl _SYSTEMD_UNIT=avahi-daemon.service
journalctl _SYSTEMD_CGROUP=/user.slice/user-42.slice/session-c1.scope
Если указано два разных поля, отображаются только записи, которые одновременно соответствуют обоим выражениям:
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097
Если два соответствия относятся к одному и тому же полю, отображаются все записи, которые соответствуют любому из выражений:
journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
Если используется разделитель "+", два выражения могут быть объединены в логическое ИЛИ. Следующая команда отобразит все сообщения из процесса службы Avahi с PID 28097, а также все сообщения из службы D-Bus (из любого из ее процессов):
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service
Чтобы отобразить все поля, генерируемые единицей, и информацию о ней, следует использовать опцию -u/--unit=:
journalctl -u name разворачивается в сложный фильтр, похожий на
_SYSTEMD_UNIT=name.service
+ UNIT=name.service _PID=1
+ OBJECT_SYSTEMD_UNIT=name.service _UID=0
+ COREDUMP_UNIT=name.service _UID=0 MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1
(см. systemd.journal-fields(7) для объяснения этих шаблонов).
Отобразить все журналы, сгенерированные исполняемым файлом D-Bus:
journalctl /usr/bin/dbus-daemon
Отобразить все журналы ядра с предыдущей загрузки:
journalctl -k -b -1
Отобразить живой журнал для системной службы apache.service:
journalctl -f -u apache
СМОТРИТЕ ТАКЖЕ
systemd(1), systemd-cat(1), systemd-journald.service(8), systemctl(1), coredumpctl(1), systemd.journal-fields(7), journald.conf(5), systemd.time(7), systemd-journal-remote.service(8), systemd-journal-upload.service(8)
ПРИМЕЧАНИЯ
UAPI.2 Спецификация обнаруживаемых разделов
https://uapi-group.org/specifications/specs/discoverable_partitions_specification
RFC 3339
https://tools.ietf.org/html/rfc3339
Формат экспорта журналов
https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-export-format
Формат JSON журналов
https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-json-format
Серверные события
https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events
Последовательности текстовых объектов JSON
https://tools.ietf.org/html/rfc7464
Каталоги сообщений журналов
https://systemd.io/CATALOG
Рекомендуется, чтобы другие инструменты устанавливали и проверяли переменную `$SUDO_UID` по мере необходимости, рассматривая ее как
общий интерфейс.