linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Команды/cmd-journalctl

kb/commands ── Команды ── intermediate

journalctl - журнал systemd

`journalctl` читает binary-журнал systemd-journald. Это центральный лог системы: kernel, systemd-сервисы, syslog - всё через один интерфейс.

view as markdownaka: journal, systemd-journal

Зачем не просто tail /var/log/syslog

  • Один источник - kernel, init, сервисы, syslog-API, stdin/stderr запущенных через systemd процессов
  • Структурированные поля - кроме текста есть _PID, _UID, _COMM, MESSAGE_ID, любые KEY=value от приложения
  • Бинарный формат - компактнее, индексируется
  • Boot-aware - есть концепция «текущей загрузки», легко отфильтровать

Базовые команды

bash
journalctl                          # весь журнал (от старого к новому)
journalctl -e                       # сразу в конец (как less -G)
journalctl -f                       # follow (как tail -f)
journalctl -n 50                    # последние 50 строк
journalctl -r                       # reverse: новые сверху

Фильтры

bash
journalctl -u nginx                       # только unit nginx (см. [[cmd-systemctl]])
journalctl -u nginx -u php-fpm            # несколько unit'ов
journalctl -p err                         # priority: emerg/alert/crit/err/warning/notice/info/debug
journalctl --since "1 hour ago"
journalctl --since "2024-01-01" --until "2024-01-02 12:00"
journalctl _PID=1234                      # по PID (структурное поле)
journalctl _COMM=sshd                     # по имени процесса
journalctl -k                             # только kernel-сообщения (= dmesg)

По загрузкам

bash
journalctl --list-boots                   # список всех загрузок системы
journalctl -b                             # только текущая загрузка
journalctl -b -1                          # предыдущая (`-1` = на одну назад)

Это важно когда система падала и перезапускалась - отделить «было до» и «началось после».

Форматы вывода

bash
journalctl -u nginx -o json           # JSON по строке - для парсинга
journalctl -u nginx -o json-pretty
journalctl -o cat -u nginx            # только MESSAGE, без префиксов
journalctl -o verbose                  # ВСЕ структурированные поля

Размер журнала

bash
journalctl --disk-usage                # сколько занимает на диске
sudo journalctl --vacuum-size=500M     # обрезать до 500 MB
sudo journalctl --vacuum-time=7d       # удалить старше 7 дней

Конфиг лимитов - /etc/systemd/journald.conf (SystemMaxUse=, MaxRetentionSec=).

Persistent vs volatile

По умолчанию на многих дистро журнал в RAM (/run/log/journal) - пропадает при ребуте. Чтобы сохранять:

bash
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald

§ команды

bash
journalctl -u nginx -f

Tail логов nginx в реальном времени

bash
journalctl -p err -b

Все ошибки текущей загрузки - первый шаг диагностики

bash
journalctl --since '10 min ago' -u myapp

Свежие логи конкретного сервиса

bash
sudo journalctl --vacuum-time=7d

Очистить журнал старше недели

bash
journalctl -k --since today

Сообщения ядра за сегодня - заменяет dmesg + фильтр

§ см. также

  • systemdsystemd - init и менеджер сервисовsystemd - init-система Linux: PID 1, который запускает всё остальное, следит за зависимостями, перезапускает упавшее, агрегирует логи.
  • cmd-systemctlsystemctl - управление сервисами systemd`systemctl` - главный CLI для управления unit'ами systemd: сервисами, таймерами, маунтами, сокетами. Замена SysV-init/`service` на современных дистро.
  • cmd-dmesgdmesg - kernel ring bufferdmesg - сообщения ядра из ring buffer (фиксированный размер, старое затирается). `-T` человеческие даты, `-w` follow, `-l err,crit` фильтр. Источник правды для драйверов и OOM-killer'а.
  • cmd-cron-crontabcron и crontab - расписание задачcron - демон, который читает crontab-файлы и запускает задачи по расписанию. Формат: `min hour day month weekday command`. Anacron для выключаемых машин. На systemd-системах часто заменяется timers.
  • signalsСигналы (SIGTERM, SIGKILL, SIGHUP)Сигнал - асинхронное уведомление процессу от ядра или другого процесса. TERM - попроси завершиться, KILL - убей сразу, HUP - перечитай конфиг.
  • unattended-upgradesАвтообновления безопасности (unattended-upgrades, dnf-automatic, livepatch)Debian/Ubuntu - unattended-upgrades, RHEL - dnf-automatic. Auto только security-updates, остальное вручную. Live patching ядра (livepatch/kpatch) даёт security-fixes без reboot. Без autoreboot - но с уведомлением о необходимости.
  • loki-grafana-loggingLoki: label-based логи, LogQL, Promtail/Vector pipelineLoki - log aggregation с label-based индексом (не full-text как Elastic). Дёшево на S3-storage. Promtail/Vector как агенты. LogQL похож на PromQL: фильтр + parse + aggregation. Cardinality - враг.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки