Я использую Фырканье для системы обнаружения проникновения (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"
Вы могли попробовать:
tail -f "$temp.snort.log" | xargs -d '\n' -L1 notify-send --
tail -f
сохраняет файл открытым и печатает новые строки, поскольку они добавляются к файлу. xargs
затем чтения каждая строка и выполнения notify-send
на нем. --
конец сигналов опций к notify-send
, так, чтобы начало строки -
случайно не рассматривается как опцию.