Перенаправить службу systemd STDERR на команду (sendmail)

Если вам нужно что-то быстрое и грязное, вы можете использовать uniqдля де -дублирования смежных записей, а затем отсортировать + подсчитать дубликаты:

$ cut -d, -f2 file | uniq | sort | uniq -c
      1  dina
      2  john
      1  matt
0
13.01.2021, 19:44
1 ответ

Я придумал одно возможное решение :записать stderr в файл и затем отправить его по почте с помощью ExecStartPost=. Я также узнал, что служебные файлы systemd не очень хорошо работают с перенаправлением, если вы не заключаете команды в/bin/bash -c '':

ExecStartPre=/bin/rm -f /root/update.err
ExecStart=/bin/bash -c '/root/bin/update 2>/root/update.err'
ExecStartPost=/bin/bash -c 'test -f /root/update.err && printf "Subject: ERROR from update.service\n\n$(cat /root/update.err)\n" | sendmail hostmaster@domain.tld'

Источник:Как передать стандартный вывод службы Systemd из ExecStart в оболочку, например. Баш?

0
18.03.2021, 22:37

Теги

Похожие вопросы