Манипулируем логами с помощью systemd-cat

Опубликовано 14 авг. 2025 г.

Автор: aglumov

Если в каком-то скрипте лень заморачиваться с логами, можно воспользоваться утилитой systemd-cat. Она отправляет логи прямиком в journald.

ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМ

Например:

echo "Successful backup" | systemd-cat -t my-backup

Просмотреть логи можно по тегу:

journalctl -t my-backup

Можно указать приоритет сообщения текстом или числом, как в syslog:

echo "Шеф, усё пропало!" | systemd-cat -t my-backup -p 1

А можно и префиксом в начале сообщения (число в угловых скобках):

echo "<1>Шеф, усё пропало!" | systemd-cat -t my-backup

В случаях отправки через pipe в journald попадет только то, что вывелось в stdout.

Для логирования stderr можно либо отправить stderr в stdout, либо запускать команду как аргумент systemd-cat:

ls non-exists 2>&1 | systemd-cat -t my-log
systemd-cat -t my-log ls non-exists

Во втором случае можно задать отдельный приоритет для сообщений из:

stderr: --stderr-priority

Комментарии