Может ли журнал systemd инициировать действия на основе проанализированных строк журнала?

Изman date:

%F     full date; same as %Y-%m-%d
%T     time; same as %H:%M:%S

0
15.09.2020, 11:50
1 ответ

Я нашел способ заставить это работать без использования журнала для разбора журнала, что на самом деле не очень хорошая идея.

Вместо этого я подключился к хукам systemd -sleep и использовал их для проверки журналов на наличие неудачного сна в течение последних нескольких минут после пробуждения. В этом случае будет воспроизводиться аудиофайл.

Мои инструменты доступны по адресуhttps://gitlab.com/jinnko/failed-sleep-alarm.

Ключом к этому является наличие сценария в /lib/systemd/system-sleep/, который будет запускаться как до, так и после сна, приостановки или гибернации. Затем этот сценарий может проверить журналы и принять меры. В моем случае скрипт выглядит так: (проверить наличие последней версии в репозитории):

#!/usr/bin/env bash

set -euo pipefail

logger -s -p kern.debug "Invoked $(realpath "$0") $*"

case $1/$2 in
  post/*)
    if /usr/bin/journalctl --since "2m ago" | grep -E "Failed to start (Hibernate|Sleep|Suspend)"; then
      amixer -q sset Master unmute
      amixer sset Master '35%'
      for i in {1..3}; do
        mpg123 -q /usr/share/failed-sleep-alarm/pig.mp3
      done
    fi
    ;;
esac
0
18.03.2021, 23:04

Теги

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