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

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

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

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

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

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

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

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

--namespace=ПРОСТІР_НАЗВ
    Приймає, як аргумент, рядок ідентифікатора простору назв журналу. Якщо не вказано аргументу, буде показано дані, які зібрано за типовим простором назв. Якщо аргумент вказано, буде показано дані журналу вказаного простору назв. Якщо простір назв вказано як «*», буде показано дані з усіх просторів назв, пошарово. Якщо до ідентифікатора простору назв додано префікс «+», буде показано дані з вказаного простору назв та типового простору назв, але не інших просторів назв, пошарово. Докладніші відомості щодо просторів назв журналу наведено на сторінці підручника systemd-journald.service(8).

ПАРАМЕТРИ ФІЛЬТРУВАННЯ

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

-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 виводить часові позначки, які мають такий само формат.

-c, --cursor=
    Почати показ записів з місця у журналі, яке вказано переданим курсором.

--after-cursor=
    Почати показ записів із місця у журналі після місця, яке вказано переданим курсором. Курсор буде показано, якщо використано параметр --show-cursor.

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

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

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

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

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

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

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

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

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

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

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

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

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

-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=» для вказаних пріоритетів.

--facility=
    Фільтрувати виведені дані за процесами syslog. Приймає список відокремлених комами номерів або назв процесів. Назви є звичайними назвами процесів syslog, як їх документовано на сторінці підручника syslog(3). Для отримання списку відомих назв процесів можна скористатися параметром --facility=help.

-g, --grep=
    Фільтрувати виведення до записів, де поле MESSAGE= відповідає вказаному формальному виразу. Буде використано сумісні із PERL формальні вирази, див. pcre2pattern(3), щоб дізнатися більше про синтаксис.

    Якщо взірець вказано лише малими літерами, відповідність буде встановлено без врахування регістру. Якщо у взірці буде хоч одна велика літера, відповідність буде встановлено із врахуванням регістру літер. Це може бути перевизначено за допомогою параметра --case-sensitive, див. нижче.

    Якщо використано з --lines=, буде неявним чином встановлено --reverse.

--case-sensitive[=БУЛЕВЕ_ЗНАЧЕННЯ]
    Враховувати чи не враховувати у взірці регістр символів.

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

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

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

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

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

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

    short-iso
        дуже подібний, але виводить часові позначки у форматі ISO 8601.

    short-iso-precise
        те саме, що і short-iso, але включає повну точність до мікросекунд.

    --truncate-newline
        Обрізати усі повідомлення журналу на першому символі розриву рядка при виведенні, щоб було показано лише перший рядок кожного повідомлення.

    short-precise
        є дуже подібним, але показує класичні часові позначки syslog з повною точністю до мікросекунд.

    short-monotonic
        є дуже подібним, але показує монотонні часові позначки замість часових позначок годинника.

    short-delta
        як для short-monotonic, але включити часову різницю із попереднім записом. Можливі неточні різниці у часу буде позначено символом "*".

    short-unix
        є дуже подібним, але показує секунди, які минули з 1-го січня 1970 UTC, замість часових позначок годинника («час UNIX»). Час буде показано із точністю до мікросекунд.

    verbose
        показує пункти повністю структурованих записів з усіма полями.

    export
        перетворює журнал у послідовну форму двійкового (але здебільшого текстового) потоку, який придатний для резервного копіювання і передавання мережею (див. формат експортування журналу[2], щоб дізнатися більше). Щоб імпортувати двійковий потік даних знову до власного формату journald, скористайтеся systemd-journal-remote(8).

    json
        форматувати, записи як об'єкти JSON, які відокремлено символами нового рядка (див. формат JSON журналу[3], щоб дізнатися більше). Значення полів, загалом, буде закодовано у рядки JSON за трьома виключеннями:

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

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

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

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

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

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

    json-seq
        форматує записи як структури даних JSON, але дописує до них префікси з роздільника записів ASCII (0x1E) і суфікси з символу подачі рядка ASCII (0x0A), відповідно до текстових послідовностей JavaScript Object Notation (JSON)[5] ("application/json-seq").

    cat
        створює дуже короткі виведені дані, буде виведено лише саме повідомлення для кожного запису журналу без метаданих, навіть без часової позначки. Якщо поєднати із параметром --output-fields=, буде виведено поля зі списку для кожного запису журналу, а не лише повідомлення.

    with-unit
        подібний до short-full, але із використанням префіксів модуля і модуля користувача замість традиційного ідентифікатора syslog. Корисно, якщо використано шаблонні екземпляри, оскільки включатиме аргументи у назвах модулів.

--output-fields=
    Список відокремлених комами полів, які має бути включено у виведені дані. Має значення лише для режимів виведення, які за звичайних умов виводять всі поля (verbose, export, json, json-pretty, json-sse і json-seq), а також для cat. Для перших, завжди буде виведено поля «__CURSOR», «__REALTIME_TIMESTAMP», «__MONOTONIC_TIMESTAMP» і «_BOOT_ID».

-n, --lines=
    Показати найсвіжіші події журналу і обмежити кількість показаних записів подій. Якщо використано --follow, буде неявним чином додано і цей параметр. Аргументом є додатне ціле число або «all» для вимикання обмеження на рядки. Типовим значенням, якщо не вказано аргументу, є 10.

    Якщо використано з --grep=, буде неявним чином встановлено --reverse.

-r, --reverse
    Обернути порядок виведення так, щоб найновіші записи було показано першими.

--show-cursor
    Курсор буде показано після останнього запису за двома дефісами:

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

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

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

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

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

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

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

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

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

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

-f, --follow
    Показати лише найсвіжіші записи журналу і неперервно виводити нові записи, щойно вони з'являтимуться у журналі.

--no-tail
    Показати усі збережені рядки виведення, навіть якщо увімкнено режим стеження. Скасовує --lines=.

-q, --quiet
    Придушує усі інформаційні повідомлення (тобто «-- Journal begins at ...», «-- Reboot --»), усі попередження щодо недоступних журналів системи при запуску від імені звичайного користувача.

ПАРАМЕТРИ КЕРУВАННЯ ПОДІЛОМ НА СТОРІНКИ

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

--no-pager
    Не передавати виведені дані до засобу поділу на сторінки.

-e, --pager-end
    Негайно перейти до кінця журналу у відповідній програмі для показу даних за сторінками. Неявним чином встановлює -n1000, щоб гарантувати, що програма для показу не створюватиме буфера журналу необмеженого розміру. Значення можна змінити явним заданням -n із якимось числовим аргументом. -nall знімає це обмеження. Зауважте, що підтримку цього параметра передбачено лише для програми для показу даних less(1).

ПАРАМЕТРИ FORWARD SECURE SEALING (FSS)

Вказаними нижче параметрами можна скористатися разом із командою --setup-keys, яку описано нижче:

--interval=
    Вказує інтервал зміни для ключа опечатування при створенні пари ключів FSS за допомогою --setup-keys. Коротші інтервали збільшують споживання процесора, але скорочують інтервал часу для виявлення внесень змін до журналу. Типовим є інтервал у 15 хвилин.

--verify-key=
    Вказує ключ перевірки FSS, яким слід скористатися для дії --verify.

--force
    Якщо передано --setup-keys і вже налаштовано Forward Secure Sealing (FSS), повторно створити ключі FSS.

КОМАНДИ

Передбачено розпізнавання вказаних нижче команд. Якщо не задано жодної команди, програма просто покаже записи журналу.

-N, --fields
    Вивести усі назви полів, які зараз використано в усіх записах журналу.

-F, --field=
    Вивести усі можливі значення даних, які може приймати вказане поле в усіх записах журналу.

--list-boots
    Показати табличний список номерів завантажень (відносно поточного завантаження), їхніх ідентифікаторів та часовий позначок першого і останнього повідомлень, які стосуються завантаження.

--disk-usage
    Показує поточне використання місця на диску для усіх файлів журналу. Результат буде показано як суму використання дискового простору усіма архівованими і активними файлами журналу.

--vacuum-size=, --vacuum-time=, --vacuum-files=
    --vacuum-size= вилучає найстаріші архівовані файли журналу, аж доки місце на диску, яке вони займають, не впаде до вказаного. Приймає звичні суфікси «K», «M», «G» і «T» (з основою 1024).

    --vacuum-time= вилучає архівовані файли журналів, які на поточний момент є старішими за вказаний проміжок часу. Приймає звичні суфікси «s» (типовий), «m», «h», «days», «months», «weeks» і «years», див. systemd.time(7), щоб дізнатися більше.

    --vacuum-files= лишає лише вказано кількість окремих файлів журналу.

    Зауважте, що запуск із --vacuum-size= матиме лише опосередкований вплив на виведення --disk-usage, оскільки до даних останнього параметра буде включено активні файли журналу, а дія з очищення працює лише з архівованими файлами журналу. Так само, --vacuum-files= може не призвести до зменшення кількості файлів журналу до вказаної, оскільки активні файли журналу вилучено не буде.

    --vacuum-size=, --vacuum-time= і --vacuum-files= можна поєднати у єдиному виклику для примусового задання будь-якого поєднання обмежень на розмір, час та кількість файлів в архівованих файлах журналу. Визначення для трьох цих параметрів нульових значень є рівнозначним зняттю усіх обмежень, а тому є зайвим.

    Ці три обмеження також можна поєднувати в одній команді з параметром --rotate. Якщо так зробити, спочатку програма виконає ротацію усіх активних файлів, а потім вказану дію з вилучення зайвих журналів. У результаті ротації усі поточні активні файли буде архівовано (і, потенційно, створено порожні файли журналів на заміну), а отже, дія з вилучення зайвих записів буде максимально ефективною, оскільки включатиме усі дані журналу, які було зібрано на момент віддання команди.

--verify
    Перевірити файл журналу на внутрішню узгодженість. Якщо файл було створено із увімкненим FSS і було вказано ключ перевірки FSS за допомогою --verify-key=, буде перевірено автентичність файла журналу.

--sync
    Наказує фоновій службі журналу записати усі ще не записані дані журналу до базової файлової системи і синхронізувати усі журнали. Виклик не повертає керування аж до завершення дії з синхронізації. Ця команда гарантує, що будь-які повідомлення журналу, які було записано до виклику команди, буде успішно збережено на диск на момент повернення керування.

--relinquish-var
    Наказує фоновій службі журналу виконати зворотну дію до --flush: якщо надіслано запит, фонова служба записуватиме подальші дані журналу до /run/log/journal/ і припиняє запис до /var/log/journal/. Наступний виклик із --flush спричиняє перемикання виведення до журналу до /var/log/journal/, див. вище.

--smart-relinquish-var
    Подібний до --relinquish-var, але не виконує жодних дій, якщо коренева файлова система і /var/log/journal/ перебувають на тій самій точці монтування. Цю дію використовують під час вимикання системи з метою наказати фоновій службі журналу припинити запис даних до /var/log/journal/ у випадку, якщо цей каталог розташовано у точці монтування, яку слід демонтувати.

--flush
    Наказує фоновій службі журналу скинути усі дані журналу, які зберігаються у /run/log/journal/ до /var/log/journal/, якщо увімкнено стале сховище даних. Цей виклик не повертає керування, аж доки дію не буде завершено. Зауважте, що цей виклик є ідемпотентним: дані з /run/log/journal/ до /var/log/journal/ буде скинуто один раз під час виконання (але див. --relinquish-var нижче) і ця команда виходить без помилок і виконання будь-яких дій, якщо скидання вже здійснено. Ця команда ефективно гарантує, що усі дані буде скинуто до /var/log/journal/ на момент повернення керування.

--rotate
    Наказує фоновій службі журналу виконати ротацію файлів журналу. Цей виклик не повертає керування, аж доки дію з ротації буде завершено. У результаті ротації файлів журналу усі поточні активні файли журналу буде позначено як архівні і перейменовано, щоб до них у майбутньому не записувалися дані. Замість них буде створено нові (порожні) файли журналу. Цю дію можна поєднувати з --vacuum-size=, --vacuum-time= і --vacuum-file= у єдину команду, див. вище.

--header
    Замість показу вмісту журналу, показати внутрішні дані заголовка щодо доступу до полів журналу.

    Цей параметр, зокрема, корисний для виявлення позапорядкових записів журналу, пов'язаних, наприклад, із завантаженням комп'ютера із помилковим часом системи.

--list-catalog [128-бітовий-ідентифікатор...]
    Вивести список вмісту каталогу повідомлень як таблицю ідентифікаторів повідомлень разом із їхніми короткими рядками опису.

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

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

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

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

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

-h, --help
    Вивести короткий текст довідки і завершити роботу.

--version
    Вивести короткі дані щодо версії і завершити роботу.

СТАН ВИХОДУ

Якщо команду буде виконано успішно, буде повернуто 0; в інших випадках, буде повернуто ненульовий код помилки.

СЕРЕДОВИЩЕ

$SYSTEMD_LOG_LEVEL
    Максимальний рівень журналювання виданих повідомлень (повідомлення із вищим рівнем журналювання, тобто менш важливі, буде придушено). Одне з таких значень (у порядку зменшення важливості): emerg, alert, crit, err, warning, notice, info, debug, або ціле число у діапазоні 0...7. Див. syslog(3), щоб дізнатися більше.

$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
    Засіб показу сторінок, яким слід скористатися, якщо не вказано --no-pager; перевизначає $PAGER. Якщо не встановлено ні $SYSTEMD_PAGER, ні $PAGER, буде виконано спробу скористатися відомими реалізаціями послідовно, включно з less(1) і more(1), аж доки не буде щось знайдено. Якщо не буде виявлено реалізації засобу показу сторінок, засіб показу сторінок викликано не буде. Встановлення для значення цієї змінної середовища порожнього рядка або значення «cat» є еквівалентом передавання параметра --no-pager.

    Зауваження: якщо не встановлено значення $SYSTEMD_PAGERSECURE, буде без попередження проігноровано $SYSTEMD_PAGER (а також $PAGER).

$SYSTEMD_LESS
    Перевизначає параметри, які буде передано less (типово, «FRSXMK»).

    Користувачам, можливо, варто змінити два параметри:

    K
        Цей параметр наказує засобу поділу на сторінки негайно завершити роботу, якщо натиснуто Ctrl+C. Щоб дозволити less обробляти Ctrl+C самостійно для перемикання назад на запит команди засобу, скасуйте встановлення цього параметра.

        Якщо значення $SYSTEMD_LESS не включає «K», і викликаним засобом поділу на сторінки є less, Ctrl+C буде проігноровано виконуваним файлом — його має обробляти сам засіб поділу на сторінки.

    X
        Цей параметр наказує засобу поділу на сторінки не надсилати рядки ініціалізації та деініціалізації termcap на термінал. Його типово встановлено, щоб лишити видимим виведення команди у терміналі, навіть після завершення роботи засобу поділу на сторінки. Тим не менше, це заважає роботі деяких можливостей засобу поділу на сторінки, зокрема виведені дані не можна буде гортати за допомогою миші.

    Див. less(1), щоб дізнатися більше.

$SYSTEMD_LESSCHARSET
    Перевизначити набір символів, який передано less (типовим набором є «utf-8», якщо викликаний термінал є сумісним із UTF-8).

$SYSTEMD_PAGERSECURE
    Приймає булевий аргумент. Якщо істина, буде увімкнено «безпечний» режим програми для поділу на сторінки; якщо хибність, режим буде вимкнено. Якщо значення $SYSTEMD_PAGERSECURE не встановлено взагалі, безпечний режим буде увімкнено, якщо ефективний UID не збігається із ідентифікатором власника сеансу входу до системи, див. geteuid(2) і sd_pid_get_owner_uid(3). У безпечному режимі LESSSECURE=1 буде встановлено при виклику засобу поділу на сторінки, і засіб вимкне команди, які відкривають або створюють файли або запускають нові підпроцеси. Якщо значення $SYSTEMD_PAGERSECURE взагалі не встановлено, засоби поділу на сторінки, про реалізацію безпечного режиму у яких нічого не відомо, не буде використано. (У поточній версії безпечний режим реалізовано лише у less(1).)

    Зауваження: якщо команди викликають із підвищеними привілеями, наприклад, з використанням sudo(8) або pkexec(1), слід подбати про те, щоб небажані інтерактивні можливості не було увімкнено. «Безпечний» режим для засобу поділу на сторінки може бути автоматично увімкнуто, як це описано вище. Якщо встановлено значення SYSTEMD_PAGERSECURE=0 або якщо змінну не усунено з успадкованого середовища, користувач зможе викликати довільні команди. Зауважте, що якщо змінні $SYSTEMD_PAGER або $PAGER слід брати до уваги, то слід встановити і значення $SYSTEMD_PAGERSECURE. Втім, у такому випадку, можливо, варто взагалі вимкнути засіб поділу на сторінки за допомогою параметра --no-pager.

$SYSTEMD_COLORS
    Приймає булевий аргумент. Якщо істина, 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 назва розгортається до складного фільтра, подібного до такого:

    _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.  Специфікація придатних до вивчення розділів
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification

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

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

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

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

6.  Документація щодо каталогу повідомлень для розробників
    https://www.freedesktop.org/wiki/Software/systemd/catalog

ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано 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.