Отображать уведомление NotifyOSD из файла журнала
Я использую Snort для системы обнаружения вторжений в реальном времени (IDS), я хочу получать системные уведомления в режиме реального времени каждый раз, когда новый файл записывается в файл журнала. Таким образом, NotifyOSD будет отображать уведомление о журнале для каждого записанного журнала. Я понимаю, используя патч NotifyOSD я могу использовать notify-send "$snort.log"
,
Тем не менее, это будет печатать все строки в файле журнала, несколько раз. Я мог бы использовать rsyslog
или же rsync
и записать новую строку во временный файл, который будет очищаться после каждого watch
команда побежала, и с watch
задержать вывод notify-send "$temp.snort.log
, Хотя я чувствую, что это безвозмездно, кроме того, результаты все еще нуждаются в дезинфекции.
Есть ли лучший способ получать уведомления IDS в режиме реального времени с помощью NotifyOSD, чем:
#!/bin/bash
watch -n1 notify-send "$temp.snort.log"
truncate -s 0 "$temp.snort.log"
1 ответ
Вы можете попробовать:
tail -f "$temp.snort.log" | xargs -d '\n' -L1 notify-send --
tail -f
сохраняет файл открытым и печатает новые строки по мере их добавления в файл. xargs
затем читает каждую строку и запускает notify-send
в теме. --
сигнализирует об окончании опций notify-send
так, чтобы строка начиналась с -
не случайно рассматривается как вариант.