JOURNALCTL(1)

НАЗВА
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 дані автоматично з'єднуються із журналом, див. systemd-journald.service(8). Крім того, можна скористатися systemd-cat(1) для надсилання повідомлень до журналу безпосередньо.

ПАРАМЕТРИ ДЖЕРЕЛА

Вказані нижче параметри визначають, звідки слід читати записи журналу:

--system, --user
    Показати повідомлення від служб системи та ядра (з --system). Показати повідомлення від служби поточного користувача (з --user). Якщо нічого не вказано, показати повідомлення, які може бачити користувач.

    Параметр --user впливає на обробку аргументів --unit=. Див. --unit=.

    Зауважте, що --user працюватиме, лише якщо увімкнено постійне ведення журналу за допомогою параметра Storage= у journald.conf(5).

    Додано у версії 205.

-M, --machine=
    Показати повідомлення від запущеного локального контейнера. Вказати назву контейнера, з яким слід встановити з'єднання.

    Додано у версії 209.

-m, --merge
    Показати записи з усіх доступних журналів, зокрема віддалених.

    Додано у версії 190.

-D DIR, --directory=КАТАЛОГ
    Приймає шлях до каталогу як аргумент. Якщо вказано, journalctl працюватиме з вказаним каталогом журналу КАТАЛОГ замість типових шляхів до області виконання та системного журналу.

    Додано у версії 187.

-i ШАБЛОН, --file=ШАБЛОН
    Приймає шаблон файлів як аргумент. Якщо вказано, journalctl працюватиме для вказаних файлів журналу, які відповідають ШАБЛОНу замість шляхів до типової області виконання та журналу системи. В одному рядку команди можна вказати декілька таких параметрів. Якщо параметрів задано декілька, файли буде відповідним чином поєднано.

    Додано у версії 205.

--root=КОРІНЬ
    Приймає шлях до каталогу як аргумент. Якщо вказано, journalctl працюватиме з каталогами журналів та ієрархією файлів каталогу у вказаному каталозі, замість кореневого каталогу (наприклад, --update-catalog створить КОРІНЬ/var/lib/systemd/catalog/database і буде показано файли журналу у КОРІНЬ/run/journal/ або КОРІНЬ/var/log/journal/).

    Додано у версії 201.

--image=ОБРАЗ
    Приймає шлях до файла образу диска або вузла блокового пристрою. Якщо вказано, journalctl працюватиме з файловою системою у вказаному образі диска. Цей параметр подібний до --root=, але працює з файловою системою, що зберігається в образах диска або блокових пристроїв, таким чином спрощуючи видобування даних журналу з образів дисків. Образ диска або має містити файлову систему, або бути набором файлових систем у таблиці розділів GPT, за якою має зберігатися UAPI.2 специфікація придатних до вивчення розділів[6]. Докладніший опис підтримуваних образів дисків наведено на сторінці підручника systemd-nspawn(1) щодо перемикача з такою самою назвою.

    Додано у версії 247.

--image-policy=правила
    Приймає рядок правил поводження з образами як аргумент, як у systemd.image-policy(7). Правила буде примусово застосовано при роботі з образами дисків, які вказано за допомогою --image=, див. вище. Якщо не вказано, типовим значенням будуть правила «*», тобто буде використано усі розпізнані файлові системи образу.

--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=ФАЙЛ
    Якщо ФАЙЛ існує і містить курсор, почати показ записів після місця курсора. В інших випадках, показати записи відповідно до інших заданих параметрів. Наприкінці, записати курсор останнього запису до файла ФАЙЛ. Скористайтеся цим параметром для неперервного читання журналу послідовними викликами journalctl.

    Додано у версії 242.

-b [[ID][±зсув]|all], --boot[=[ідентифікатор][±зсув]|all]
    Показати повідомлення із вказаного сеансу завантаження. Додає фільтр «_BOOT_ID=».

    Аргумент може бути порожнім. Для порожніх аргументів буде показано журнал поточного завантаження.

    Якщо не вказано ідентифікатор завантаження, додатне значення зсуву призведе до пошуку завантажень від початку журналу, а недодатне значення зсув призведе до пошуку завантажень, починаючи з кінця журналу. Отже, 1 означає перше завантаження у журналі за хронологічним порядком, 2 — друге тощо; а -0 означає останнє завантаження, -1 завантаження перед останнім, тощо. Порожнє значення зсув є еквівалентним визначенню -0, окрім випадку, коли поточне завантаження не є останнім (наприклад, через визначення --directory= для пошуку журналів з іншого комп'ютера).

    Якщо вказано 32-символьний ідентифікатор, після нього може бути вказано зсув, який визначає завантаження відносно заданого за ідентифікатором завантаження. Від'ємні значення означають попередні завантаження, а додатні — пізніші завантаження. Якщо зсув не вказано, буде використано нульове значення, отже, буде показано дані завантаження, які задано значенням ідентифікатор.

    Можна скористатися спеціальним аргументом all для вимикання усіх попередніх використань -b.

    Додано у версії 186.

-u, --unit=МОДУЛЬ|ВЗІРЕЦЬ
    Показати повідомлення для вказаного модуля systemd МОДУЛЬ (зокрема модуля служби) або для будь-яких модулів, які відповідають ВЗІРЦЮ. Якщо вказано взірець, список назв модулів, повідомлення яких буде знайдено у журналі, буде порівняно із вказаним взірцем і буде використано усі відповідні. Для кожної назви модуля буде додано фільтр для повідомлень з модуля («_SYSTEMD_UNIT=МОДУЛЬ»), разом із додатковими фільтрами для повідомлень від systemd і повідомлень щодо дампів ядра для вказаного модуля. Також буде додано фільтр «_SYSTEMD_SLICE=МОДУЛЬ», такий, що якщо заданий МОДУЛЬ є модулем systemd.slice(5), буде показано дані усіх дочірніх щодо зрізу журналів.

    Із --user усі аргументи --unit= буде перетворено так, щоб вони відповідали повідомленням користувача, як їх визначено за допомогою --user-unit=.

    В одній команді можна використати декілька цих параметрів.

    Додано у версії 195.

--user-unit=
    Показати повідомлення для вказаного модуля сеансу користувача. Додасть фільтр для повідомлень від модуля («_SYSTEMD_USER_UNIT=» і «_UID=») і додаткові фільтри для повідомлень від systemd сеансу і повідомлень щодо дампів ядра для вказаного модуля. Також буде додано фільтр для «_SYSTEMD_USER_SLICE=МОДУЛЬ», такий, що якщо заданий МОДУЛЬ є модулем systemd.slice(5), буде показано дані усіх дочірніх щодо зрізу журналів.

    В одній команді можна використати декілька цих параметрів.

    Додано у версії 198.

-I, --invocation=ідентифікатор[±зсув]|зсув
    Показати повідомлення із вказаного запуску модуля. Додасть встановлення відповідності рядкам "_SYSTEMD_INVOCATION_ID=", "OBJECT_SYSTEMD_INVOCATION_ID=", "INVOCATION_ID=", "USER_INVOCATION_ID=".

    додатне значення зсуву призведе до пошуку викликів модуля systemd від початку журналу, а нульовий або від'ємний зсув призведе до пошуку викликів, починаючи з кінця журналу. Отже, 1 означає перший виклик у журналі за хронологічним порядком, 2 — друге тощо; а -0 означає останній виклик, -1 виклик перед останнім, тощо.

    Якщо вказано 32-символьний ідентифікатор, після нього може бути вказано (+-зсув), який визначає виклик відносно заданого за ідентифікатором виклику. Від'ємні значення означають попередні виклики, а додатні — пізніші завантаження. Якщо (+-зсув) не вказано, буде використано нульове значення, отже, буде показано дані виклику, які задано значенням ідентифікатор.

    -I є еквівалентом --invocation=0 — буде показано журнал для останнього виклику.

    Якщо вказано зсув, має бути вказано назву модуля за допомогою параметра -u/--unit= або --user-unit=.

    Якщо вказано разом із -b/--boot=, пошук викликів буде виконано для вказаного завантаження.

    Додано у версії 257.

-t, --identifier=ІДЕНТИФІКАТОР_SYSLOG
    Показати повідомлення для вказаного ідентифікатора syslog SYSLOG_IDENTIFIER.

    В одній команді можна використати декілька цих параметрів.

    Додано у версії 217.

-T, --exclude-identifier=ІДЕНТИФІКАТОР_SYSLOG
    Виключити повідомлення для вказаного ідентифікатора syslog SYSLOG_IDENTIFIER.

    В одній команді можна використати декілька цих параметрів.

    Додано у версії 256.

-p, --priority=
    Фільтрувати виведені дані за пріоритетами повідомлень або діапазонами пріоритетів. Приймає або одинарний числовий або текстовий рівень журналу (тобто значення від 0/«emerg» до 7/«debug»), або діапазон числових чи текстових рівнів журналу у формі ВІД..ДО. Рівні журналу є звичайними рівнями журналу 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[=БУЛЕВЕ_ЗНАЧЕННЯ]
    Враховувати чи не враховувати у взірці регістр символів.

    Додано у версії 237.

-k, --dmesg
    Показати лише повідомлення ядра. Це додає фільтр «_TRANSPORT=kernel». Це неявним чином встановлює --boot=0, якщо значення не вказано явним чином.

    Додано у версії 205.

ПАРАМЕТРИ ВИВЕДЕННЯ ДАНИХ

Вказані нижче параметри визначають, як слід виводити записи журналу:

-o, --output=
    Керує форматуванням записів журналу, які буде показано. Приймає такі аргументи:

    short
        типовий варіант — вивести дані у форматі, який здебільшого збігається із форматуванням класичних файлів журналу системи, по одному рядку на запис журналу.

        Додано у версії 206.

    short-full
        дуже подібний до попереднього, але із показом часових позначок у форматі, який приймають параметри --since= і --until=. На відміну від даних часових позначок, які буде показано у режимі виведення short, до даних цього режиму буде включено дані щодо дня тижня, року і часового поясу, а також усунено переклад.

        Додано у версії 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 за трьома виключеннями:

            1. Поля розміром понад 4096 байтів буде закодовано як null-значення. (Вимкнути це можна передаванням параметра --all, але слід зважати на можливість створення надто довгих об'єктів JSON.)

            2. У записах журналів можуть бути повторення полів. У JSON не можна дублювати поля у межах об'єктів. Через це, якщо буде виявлено дублювання полів, як значення поля буде використано масив JSON, у якому елементами будуть значення усіх полів.

            3. Поля, які містять непридатні до друку символи або байти поза UTF8, їх буде закодовано як масиви, що містять необроблені байти, індивідуально форматовані, як числа без знаку.

        Зауважте, що це кодування можна буде обернути (за виключенням обмеження на розмір).

        Додано у версії 206.

    json-pretty
        форматує записи у форматі структур даних JSON, але форматує їх у декілька рядків, щоб зробити їх зручнішими для читанню людиною.

        Додано у версії 206.

    json-sse
        форматує записи як структури даних JSON, але загортає їх у формат, який є придатним для подій, надісланих на сервер[5].

        Додано у версії 206.

    json-seq
        форматує записи як структури даних JSON, але дописує до них префікси з роздільника записів ASCII (0x1E) і суфікси з символу подачі рядка ASCII (0x0A), відповідно до текстових послідовностей JavaScript Object Notation (JSON)[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
    Курсор буде показано після останнього запису за двома дефісами:

        -- курсор: s=0639...

    Формат курсору є недоступним до зміни, його може бути змінено у наступних версіях програми.

    Додано у версії 209.

--utc
    Вивести час як всесвітній (UTC).

    Додано у версії 217.

-x, --catalog
    Розширити рядки журналу пояснювальними текстовими фрагментами з каталогу повідомлень. Пояснювальні довідкові текстові фрагменти буде додано до повідомлень журналу у виведенні там, де вони доступні. Ці короткі довідкові тексти пояснюватимуть контекст помилки або подію журналу, вказуватимуть на можливі рішення, а також вказуватимуть на форуми підтримки, документацію для розробників та усі інші відповідні підручники. Зауважте, що довідкові тексти доступні не для усіх повідомлень, а лише для вибраних. Щоб дізнатися більше про каталог повідомлень, будь ласка, зверніться до документації щодо каталогів повідомлень журналу[7].

    Зауваження: при долученні виведених journalctl даних до звітів щодо вад, будь ласка не використовуйте -x.

    Додано у версії 196.

-W, --no-hostname
    Не показувати поле назви вузла для повідомлень журналу. Цей перемикач працює лише для сімейства режимів виведення short (див. вище).

    Зауваження: використання цього параметра не призводить до вилучення рядків назви вузла із самих записів журналу, отже не запобігає показу назви вузла у журналі.

    Додано у версії 230.

--no-full, --full, -l
    Обривати поля багатокрапкою там, де вони не вміщуються у доступну кількість позицій. Типовим є повний показ полів з можливістю перенесення або обрізання рядків програмою для показу даних за сторінками, якщо таку використано.

    Використання застарілих параметрів -l/--full вимкнено, окрім --no-full.

    Додано у версії 196.

-a, --all
    Показувати усі поля повністю, навіть якщо вони містять непридатні до друку символи або є дуже довгими. Типово, поля із непридатними до друку символами обрізаються як «бінарні дані». (Зауважте, що програма поділу даних на сторінки (пейджер) може виконати додаткове екранування непридатних до друку символів.)

-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.

ПАРАМЕТРИ FORWARD SECURE SEALING (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 і вже налаштовано Forward Secure Sealing (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-бітовий-ідентифікатор...]
    Вивести список вмісту каталогу повідомлень як таблицю ідентифікаторів повідомлень разом із їхніми короткими рядками опису.

    Якщо вказано будь-які 128-бітові-ідентифікатори, буде показано лише відповідні їм записи.

    Додано у версії 196.

--dump-catalog [128-бітовий-ідентифікатор...]
    Показати вміст каталогу повідомлень із відокремленням записів рядком, що складається із двох дефісів та ідентифікатора (формат є тим самим, що і у файлів .catalog).

    Якщо вказано будь-які 128-бітові-ідентифікатори, буде показано лише відповідні їм записи.

    Додано у версії 199.

--update-catalog
    Оновити покажчик каталогу повідомлень. Цю команду слід виконувати кожного разу після встановлення, вилучення або оновлення файлів каталогу для повторної побудови двійкового покажчика каталогу.

    Додано у версії 196.

--setup-keys
    Замість показу вмісту журналу, створити нову пару ключів для Forward Secure Sealing (FSS). У результаті буде створено ключ опечатування і ключ для перевірки. Ключ опечатування буде збережено у каталозі даних журналу, він лишатиметься в основній системі. Ключ перевірки має бути збережено ззовні. Зверніться до опису параметра Seal= на сторінці підручника з journald.conf(5), щоб дізнатися більше про Forward Secure Sealing і отримати посилання на наукові роботи із детальним описом криптографічної теорії, на яких воно засновано.

    Додано у версії 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 вказує на реєстрацію на рівні діагностики, за винятком випадків входу в консоль, яка має бути на рівніinfo). Зауважте, що глобальний максимальний рівень журналювання має пріоритет над будь-якими максимальними рівнями журналювання для кожної цілі.

$SYSTEMD_LOG_COLOR
    Булеве значення. Якщо істинне, повідомлення, які записано до термінал, буде розфарбовано за пріоритетністю.

    Цей параметр є корисним, лише якщо повідомлення буде записано безпосередньо до термінала, оскільки journalctl(1) та інші інструменти для показу журналу розфарбовуватимуть повідомлення на основі рівня журналювання власними засобами.

$SYSTEMD_LOG_TIME
    Булеве значення. Якщо істинне, до повідомлень журналу у консолі буде додано префікс із часової позначки.

    Цей параметр є корисним, лише якщо повідомлення буде записано безпосередньо до термінала або файла, оскільки journalctl(1) та інші інструменти для показу журналу додаватимуть часові позначки на основі метаданих запису власними засобами.

$SYSTEMD_LOG_LOCATION
    Булеве значення Якщо істинне, до повідомлень журналу буде додано префікс із назви файла і номера рядка у початковому коді, звідки походить повідомлення.

    Зауважте, що часто до записів журналу все одно буде дописано розташування журналу. Тим не менше, включення його безпосередньо до тексту повідомлення може бути зручним для діагностичних програм.

$SYSTEMD_LOG_TID
    Булеве значення Якщо істинне, до повідомлень журналу буде додано префікс із поточного числового ідентифікатора потоку обробки (TID).

    Зауважте, що до записів журналу все одно буде дописано ці відомості. Тим не менше, включення його безпосередньо до тексту повідомлення може бути зручним для діагностичних програм.

$SYSTEMD_LOG_TARGET
    Призначення для повідомлень журналу. Одне з таких значень: console (виводити повідомлення до долученого термінала), console-prefixed (виводити повідомлення до долученого термінала, але із префіксом, де закодовано рівень журналювання і «процес», див. 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, якщо значення цієї змінної встановлено; якщо значення не встановлено ні для $SYSTEMD_PAGER, ні для $PAGER, буде виконано спробу скористатися відомими реалізаціями послідовно, включно з 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 не збігається з власником сеансу входу, див. 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
    Приймає логічний аргумент або спеціальне значення.Типово (не встановлено), systemd та пов'язані допоміжні засоби використовуватимуть розфарбовування у виведених даних, якщо це можливо. Якщо для $COLORTERM встановлено "truecolor" або "24bit", буде увімкнено 24-бітові кольори, інакше - 256 кольорів, якщо $NO_COLOR або $TERM не вказують, що розфарбовування вимкнено.

    true
        Те саме, що і «не встановлено», але $NO_COLOR буде проігноровано.

    false
        Виведені дані будуть чорно-білими.

    "16", "256", "24bit"
        Завжди використовувати базові 16 кольорів ANSI, 256 кольорів або 24-бітові кольори, відповідно.

    "auto-16", "auto-256", "auto-24bit"
        Використовувати вказану кількість кольорів стосовно $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 назва розгортається до складного фільтра, подібного до такого:

    _SYSTEMD_UNIT=назва.service
      + UNIT=назва.service _PID=1
      + OBJECT_SYSTEMD_UNIT=назва.service _UID=0
      + COREDUMP_UNIT=назва.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)

ПРИМІТКИ

1.  UAPI.2 Специфікація придатних до вивчення розділів
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification

2.  RFC 3339
    https://tools.ietf.org/html/rfc3339

3.  Формат експортування журналу
    https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-export-format

4.  Формат JSON журналу
    https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-json-format

5.  Надіслані на сервер події
    https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events

6.  Текстові послідовності JavaScript Object Notation (JSON)
    https://tools.ietf.org/html/rfc7464

7.  Каталоги повідомлень журналу
    https://systemd.io/CATALOG

8.  Рекомендуємо, щоб інші інструменти встановлювали та перевіряли значення $SUDO_UID належним чином, розглядаючи це як типовий інтерфейс.

ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано lxlalexlxl <lxlalexlxl@ukr.net> і Yuri Chornoivan <yurchor@ukr.net>

Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html). НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.

Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.