Инструменты пользователя

Инструменты сайта


linux:administration:journalctl

Это старая версия документа!


# Шпаргалка по journalctl в Linux

В Linux работающем под управлением системы инициализации systemd для просмотра логов определенного сервиса или загрузки системы необходимо использовать утилиту journalctl ## Синтаксис и опции journalctl

Синтаксис:

``` journalctl опции ``` основные опции:

* --full, -l - отображать все доступные поля; * --all, -a - отображать все поля в выводе full, даже если они содержат непечатаемые символы или слишком длинные; * --pager-end, -e - отобразить только последние сообщения из журнала; * --lines, -n - количество строк, которые нужно отображать на одном экране, по умолчанию 10; * --no-tail - отображать все строки доступные строки; * --reverse, -r - отображать новые события в начале списка; * --output, -o - настраивает формат вывода лога; * --output-fields - поля, которые нужно выводить; * --catalog, -x - добавить к информации об ошибках пояснения, ссылки на документацию или форумы там, где это возможно; * --quiet, -q - не показывать все информационные сообщения; * --merge, -m - показывать сообщения из всех доступных журналов; * --boot, -b - показать сообщения с момента определенной загрузки системы. По умолчанию используется последняя загрузка; * --list-boots - показать список сохраненных загрузок системы; * --dmesg, -k - показывает сообщения только от ядра. Аналог вызова команды dmesg; * --identifier, -t - показать сообщения с выбранным идентификатором; * --unit, -u - показать сообщения от выбранного сервиса; * --user-unit - фильтровать сообщения от выбранной сессии; * --priority, -p - фильтровать сообщения по их приоритету. Есть восемь уровней приоритета, от 0 до 7; * --grep, -g - фильтрация по тексту сообщения; * --cursor, -c - начать просмотр сообщений с указанного места; * --since, -S, --until, -U - фильтрация по дате и времени; * --field, -F - вывести все данные из выбранного поля; * --fields, -N - вывести все доступные поля; * --system - выводить только системные сообщения; * --user - выводить только сообщения пользователя; * --machine, -M - выводить сообщения от определенного контейнера; * --header - выводить заголовки полей при выводе журнала; * --disk-usage - вывести общий размер лог файлов на диске; * --list-catalog - вывести все доступные подсказки для ошибок; * --sync - синхронизировать все не сохраненные журналы с файловой системой; * --flush - перенести все данные из каталога /run/log/journal в /var/log/journal; * --rotate - запустить ротацию логов; * --no-pager - выводить информацию из журнала без возможности листать страницы; * -f - выводить новые сообщения в реальном времени, как в команде tail; * --vacuum-time - очистить логи, давностью больше указанного периода; * --vacuum-size - очистить логи, чтобы размер хранилища соответствовал указанному.

(!) Если утилита не выводит ничего, выполните её от имени суперпользователя : ## Горячие клавиши journalctl

По умолчанию информация лога выводится в формате, в котором её можно листать. Для этого можно использовать следующие горячие клавиши:

  • Стрелка вниз, Enter, e или j - переместиться вниз на одну строку;
  • Стрелка вверх, y или k - переместиться на одну строку вверх;
  • Пробел - переместиться на одну страницу вниз;
  • b - переместиться на одну страницу вверх;
  • Стрелка вправо, стрелка влево - горизонтальна прокрутка;
  • g - перейти на первую строку;
  • G - перейти на последнюю строку;
  • p - перейти на позицию нужного процента сообщений. Например, 50p перенесет курсор на середину вывода;
  • / - поиск по журналу;
  • n - найти следующее вхождение;
  • N - предыдущее вхождение;
  • q - выйти.

## Шпаргалка по journalctl

Вывод journalctl представляет из себя цельный список всех сохраненных сообщений. Если вы запустите команду journalctl без параметров, то получите самые первые сообщения, которые были сохранены. ``` sudo journalctl ```

Формат вывода лога такой: ``` янв 13 20:55:55 sergiy-pc kernel: Linux version 4.15.0-43-generic ``` где:

  • янв 13 20:55:55 - дата и время события;
  • sergiy-pc - хост, на котором произошло событие;
  • kernel - источник события, обычно это программа или сервис. В данном случае ядро;
  • Linux version 4.15.0-43-generic - само сообщение.

Ниже приводятся примеры фильтрации и перемещения. ### 1.Просмотр логов сервисов

Самый частый случай использования journalctl - когда при запуске какого-либо сервиса с помощью systemd, он не запускается и systemd выдает сообщение подобного содержания: Failed to start service use journalctl -xe for details.

Система сама предлагает какую команду надо выполнить: ``` sudo journalctl -xe ``` эта команда отображает последние сообщения в журнале и добавляет к ним дополнительную информацию, если она есть. Учитывая, что последнее что происходило был не запустившийся сервис, то здесь будут сообщения от него и можно будет понять почему он не запускается.

Чтобы отфильтровать сообщения только от определенного сервиса можно использовать опцию -u. Например: ``` sudo journalctl -eu apache2.service ``` ### 2.Просмотр логов в режиме tail

С помощью опции -f можно указать утилите, что необходимо выводить новые сообщения в реальном времени: ``` sudo journalctl -f ``` В этом режиме less не поддерживается, поэтому для выхода нажмите сочетание клавиш Ctrl+C.

### 3.Просмотр логов загрузки

В логе journalctl содержатся все логи, в том числе и логи загрузки.

Чтобы открыть лог последней загрузки используйте опцию -b: ``` sudo journalctl -b ```

Посмотреть список всех сохраненных загрузок можно командой: ``` sudo journalctl -list-boots ``` будет выведен список загрузок системы с указанием даты и индентификатора.

Теперь, чтобы посмотреть сообщения для нужной загрузки используйте её идентификатор: ``` sudo journalctl -b 37d5c906c9c6404682f029b2c34ec9dc ```

## 1

https://losst.ru/shpargalka-po-journalctl-v-linux

/var/www/html/dokuwiki/data/attic/linux/administration/journalctl.1659734522.txt.gz · Последнее изменение: (внешнее изменение)