我正在将 Snort 用于实时入侵检测系统 (IDS),我希望在每次将新日志写入日志文件时获得实时系统通知。因此,NotifyOSD 将为每个写入的日志显示一个日志通知。我了解使用我可以使用的修补过的 NotifyOSDnotify-send "$snort.log"
。
但是,这将重复打印日志文件中的所有行。我可以使用rsyslog
orrsync
并将最新的行写入一个临时文件,该文件将在每个watch
命令运行后被清除,并watch
延迟输出notify-send "$temp.snort.log
. 虽然我觉得这是无缘无故的,但输出仍然需要消毒。
有没有比 NotifyOSD 更好的方法来实现实时 IDS 通知:
#!/bin/bash
watch -n1 notify-send "$temp.snort.log"
truncate -s 0 "$temp.snort.log"
你可以试试:
tail -f
保持文件打开并在新行添加到文件时打印它们。xargs
然后读取每一行并notify-send
在其上运行。选项结束的--
信号 到notify-send
,因此以开头的行-
不会被意外视为选项。