Как вычистить важные ошибки из логов systemd

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

bashlinuxsystemd

👁 При работе с systemd‑сервисами логи быстро захламляются неинформативными строками. Чтобы найти реальные сбои (ошибки, падения, критические сбои), полезно прогонять journalctl через фильтр по ключевым словам и убирать шум.

📝 Пример скрипта:

#!/bin/bash

SERVICE_NAME=$1
journalctl -u "$SERVICE_NAME" -n 5000 \
  | grep -iE 'error|fail|panic|critical|segfault|oom' \
  | grep -vE 'favicon|404|access denied|broken pipe' \
  | tee /tmp/${SERVICE_NAME}_filtered_errors.log

📌 Запускается так:

./extract_errors.sh nginx

Скрипт извлекает последние 5000 строк логов указанного сервиса, ищет в них критичные ошибки и отбрасывает неважные сообщения (например, про 404 или favicon). Полезно для быстрой диагностики проблем на серверах без полноценного мониторинга.

🔎 Что делает:

  • Собирает логи systemd‑юнита с помощью journalctl
  • Ищет ключевые слова ошибок (error, panic, segfault, и т.д.)
  • Удаляет шум (типичные, но неважные сообщения)
  • Сохраняет результат в отдельный файл в /tmp

❗️ Удобный приём, когда нужно быстро просканировать сервисы вручную или встроить в отладочный пайплайн. Работает в любой системе с systemd — без дополнительных утилит.

tags: #bash #linux #логирование

❤️ @recura_tech

Скриншот тёмной темы с примером bash‑скрипта для фильтрации journalctl (используются grep/tee), видна команда с именем сервиса и логотип RECURA.
Пример скрипта для извлечения критичных ошибок из логов systemd.

Читайте так же