リアルタイム侵入検知システム(IDS)にSnortを使用しています。新しいログがログファイルに書き込まれるたびにリアルタイムシステム通知が欲しいです。そのため、NotifyOSDは、書き込まれた各ログのログ通知を表示します。わかりました パッチを適用したNotifyOSDを使用notify-send "$snort.log"
を使用できます。
ただし、これにより、ログファイル内のすべての行が繰り返し印刷されます。 rsyslog
またはrsync
を使用して、最新の行を一時ファイルに書き込むことができます。一時ファイルは、各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 "$temp.snort.log" | xargs -d '\n' -L1 notify-send --
tail -f
はファイルを開いたままにし、ファイルに追加されると新しい行を出力します。次に、xargs
は各行を読み取り、その行でnotify-send
を実行します。 --
はオプションの終わりをnotify-send
に通知するため、-
で始まる行が誤ってオプションと見なされることはありません。