web-dev-qa-db-ja.com

ログファイルからNotifyOSD通知を表示する

リアルタイム侵入検知システム(IDS)にSnortを使用しています。新しいログがログファイルに書き込まれるたびにリアルタイムシステム通知が欲しいです。そのため、NotifyOSDは、書き込まれた各ログのログ通知を表示します。わかりました パッチを適用したNotifyOSDを使用notify-send "$snort.log"を使用できます。

NotifyOSD

ただし、これにより、ログファイル内のすべての行が繰り返し印刷されます。 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"
1
safesploit

あなたは試すことができます:

tail -f "$temp.snort.log" | xargs -d '\n' -L1 notify-send -- 

tail -fはファイルを開いたままにし、ファイルに追加されると新しい行を出力します。次に、xargsは各行を読み取り、その行でnotify-sendを実行します。 --はオプションの終わりをnotify-sendに通知するため、-で始まる行が誤ってオプションと見なされることはありません。

3
muru