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

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


linux:administration:journalctl

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
linux:administration:journalctl [2022/08/05 20:48] – [Горячие клавиши journalctl] so_v_alinux:administration:journalctl [2026/08/26 14:45] (текущий) – so_v_a
Строка 1: Строка 1:
 +<!DOCTYPE markdown>
 +
 # Шпаргалка по journalctl в Linux # Шпаргалка по journalctl в Linux
  
 В Linux работающем под управлением системы инициализации systemd для просмотра логов определенного сервиса или загрузки системы необходимо использовать утилиту **journalctl** В Linux работающем под управлением системы инициализации systemd для просмотра логов определенного сервиса или загрузки системы необходимо использовать утилиту **journalctl**
 +
 +Наличие этой утилиты в системе не означает, что теперь нет возможности пользоваться обычными файлами логов.  
 +Большинство сервисов как и раньше пишут свои основные логи в файлы, а в лог journalctl пишутся сообщения при старте сервисов, а также различные системные сообщения.
 +
 ## Синтаксис и опции journalctl ## Синтаксис и опции journalctl
  
Строка 48: Строка 54:
 * **--vacuum-size** - очистить логи, чтобы размер хранилища соответствовал указанному. * **--vacuum-size** - очистить логи, чтобы размер хранилища соответствовал указанному.
  
-**(!)** __Если утилита не выводит ничего, выполните её от имени суперпользователя__ +> **(!)Note**: Если утилита не выводит ничего, выполните её от имени суперпользователя 
-:+
 ## Горячие клавиши journalctl ## Горячие клавиши journalctl
  
Строка 66: Строка 72:
   * **N** - предыдущее вхождение;   * **N** - предыдущее вхождение;
   * **q** - выйти.   * **q** - выйти.
-## Шпаргалка по journalctl+ 
 +## Примеры использования journalctl
  
 Вывод journalctl представляет из себя цельный список всех сохраненных сообщений. Если вы запустите команду journalctl без параметров, то получите самые первые сообщения, которые были сохранены. Вывод journalctl представляет из себя цельный список всех сохраненных сообщений. Если вы запустите команду journalctl без параметров, то получите самые первые сообщения, которые были сохранены.
Строка 78: Строка 85:
 ``` ```
 где: где:
-  * янв 13 20:55:55 - дата и время события; +  * **янв 13 20:55:55** - дата и время события; 
-  * sergiy-pc - хост, на котором произошло событие; +  * **sergiy-pc** - хост, на котором произошло событие; 
-  * kernel - источник события, обычно это программа или сервис. В данном случае ядро; +  * **kernel** - источник события, обычно это программа или сервис. В данном случае ядро; 
-  * Linux version 4.15.0-43-generic - само сообщение.+  * **Linux version 4.15.0-43-generic** - само сообщение.
  
 +Ниже приводятся примеры фильтрации и перемещения.
  
 +### 1.Просмотр логов сервисов
  
 +Самый частый случай использования journalctl - когда при запуске какого-либо сервиса с помощью systemd, он не запускается и systemd выдает сообщение подобного содержания: **Failed to start service use journalctl -xe for details**. 
  
 +Система сама предлагает какую команду надо выполнить:
 +```
 +sudo journalctl -xe
 +```
 +эта команда отображает последние сообщения в журнале и добавляет к ним дополнительную информацию, если она есть.  
 +Учитывая, что последнее что происходило был не запустившийся  сервис, то здесь будут сообщения от него и можно будет понять почему он не запускается.
  
-## 1+Чтобы отфильтровать сообщения только от определенного сервиса можно использовать опцию -u. Например: 
 +``` 
 +sudo journalctl -eu apache2.service 
 +```
  
 +### 2.Просмотр логов в режиме tail
  
-https://losst.ru/shpargalka-po-journalctl-v-linux+С помощью опции -f можно указать утилите, что необходимо выводить новые сообщения в реальном времени: 
 +``` 
 +sudo journalctl -f 
 +``` 
 +В этом режиме less не поддерживается, поэтому для выхода нажмите сочетание клавиш **Ctrl+C**. 
 + 
 +### 3.Просмотр логов загрузки 
 + 
 +В логе journalctl содержатся все логи, в том числе и логи загрузки.  
 + 
 +Чтобы открыть лог последней загрузки используйте опцию -b: 
 +``` 
 +sudo journalctl -b 
 +``` 
 + 
 +Посмотреть список всех сохраненных загрузок можно командой: 
 +``` 
 +sudo journalctl -list-boots 
 +``` 
 +будет выведен список загрузок системы с указанием даты и индентификатора. 
 + 
 +Теперь, чтобы посмотреть сообщения для нужной загрузки используйте её идентификатор: 
 +``` 
 +sudo journalctl -b 37d5c906c9c6404682f029b2c34ec9dc 
 +``` 
 + 
 +### 4.Фильтрация по дате 
 + 
 +С помощью опции --since можно указать дату и время, **начиная с которой** нужно отображать логи: 
 +``` 
 +sudo journalctl --since "2019-01-20 15:10:10" 
 +``` 
 + 
 +Опция --until помогает указать **по какую** дату вы хотите получить информацию: 
 +``` 
 +sudo journalctl -e --until "2019-01-20 15:05:50" 
 +``` 
 +Или можно скомбинироват эти опции чтобы получить логи за нужный период: 
 +``` 
 +sudo journalctl --since "2019-01-20 15:10:10" --until "2019-01-20 15:05:50" 
 +``` 
 + 
 +### 5.Журнал ядра 
 + 
 +Если вы хотите посмотреть только сообщения ядра используйте опцию -k: 
 +``` 
 +sudo journalctl -ek 
 +``` 
 + 
 +### 6.Настройка формата вывода 
 + 
 +По умолчанию journalctl выводит информацию с помощью утилиты less, в которой вы можете её удобно листать и просматривать. 
 + 
 +Но формат вывода можно изменить: 
 +  * **short** - используется по умолчанию; 
 +  * **verbose** - также, как и short, только выводится намного больше информации; 
 +  * **json** - вывод в формате json, одна строка лога в одной строке вывода; 
 +  * **json-pretty** - форматированный вывод json для более удобного восприятия; 
 +  * **cat** - отображать только сообщения, без метаданных. 
 + 
 +Чтобы указать нужный формат используйте опцию -o. Например: 
 +``` 
 +sudo journalctl -o json-pretty 
 +``` 
 + 
 +Или: 
 +``` 
 +sudo journalctl -eo json-pretty 
 +``` 
 +### 7.Очистка логов 
 + 
 +Сначала нужно посмотреть сколько ваши логи занимают на диске. Для этого используется такая команда: 
 +``` 
 +sudo journalctl --disk-usage 
 +``` 
 + 
 +Чтобы уменьшить размер лога можно использовать опцию **--vacuum-size**. Например, если вы хотите, чтобы ваши файлы журналов занимали на диске не более 2 Гб, выполните команду: 
 +``` 
 +sudo journalctl --vacuum-size=2G 
 +``` 
 +Теперь старые логи будут удалены, пока общий объем хранилища не будет составлять 2 гигабайта.  
 + 
 +Также можно удалять логи по времени. Для этого используется опция **--vacuum-time**. Например, оставим только логи за последний год: 
 +``` 
 +journalctl --vacuum-time=1years 
 +```
  
/var/www/html/dokuwiki/data/attic/linux/administration/journalctl.1659732528.txt.gz · Последнее изменение: (внешнее изменение)