Манипулируем логами с помощью systemd-cat
Автор: 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