TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #563 708
Контроль роста логов systemd по сервисам

Когда /var/log начинает раздуваться, виноват почти всегда один-два шумных сервиса. Но в journald нет привычных файлов - значит нужно считать по-другому. Значит будем брать сервис, считать объем его логов и сравниваем во времени.

1️⃣ Сколько логов пишет сервис. Пример для nginx:


journalctl -u nginx --since "1 hour ago" | wc -c


Получаем объем логов за час (в байтах).

2️⃣ Быстрый топ шумных сервисов


systemctl list-units --type=service --no-legend | awk '{print $1}' |
while read -r svc; do
size=$(journalctl -u "$svc" --since "1 hour ago" 2>/dev/null | wc -c)
echo "$size $svc"
done | sort -nr | head


Результат:


12345678 docker.service
9876543 nginx.service
1234567 ssh.service


Сразу видно, кто генерирует больше всего логов.

3️⃣ Контроль роста. Сохраняем текущее состояние:


journalctl -u nginx --since "1 hour ago" | wc -c > /tmp/nginx.size


Через время:


old=$(cat /tmp/nginx.size)
new=$(journalctl -u nginx --since "1 hour ago" | wc -c)

echo "Рост: $((new - old)) байт"


4️⃣ Скрипт


#!/usr/bin/env bash

SINCE="10 min ago"
THRESHOLD=1000000 # 1 MB

systemctl list-units --type=service --no-legend | awk '{print $1}' |
while read -r svc; do
size=$(journalctl -u "$svc" --since "$SINCE" 2>/dev/null | wc -c)

if (( size > THRESHOLD )); then
echo "ALERT: $svc → $size bytes за $SINCE"
fi
done


BashTex 📱 #systemd #logs
  • 👍 6
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →