web-dev-qa-db-fra.com

Afficher la notification NotifyOSD à partir d'un fichier journal

J'utilise Snort pour un système de détection d'intrusion (IDS) en temps réel, mon souhait est de recevoir des notifications système en temps réel chaque fois qu'un nouveau journal est écrit dans le fichier journal. Ainsi, NotifyOSD affichera une notification du journal pour chaque journal écrit. Je comprends en utilisant un NotifyOSD patché Je peux utiliser notify-send "$snort.log".

NotifyOSD

Cependant, cela imprimera toutes les lignes du fichier journal à plusieurs reprises. Je pourrais utiliser rsyslog ou rsync et écrire la dernière ligne dans un fichier temporaire, qui serait effacé après l'exécution de chaque commande watch, et avec watch delay la sortie de notify-send "$temp.snort.log. Bien que je pense que cela soit gratuit, en outre, la sortie aurait encore besoin d'être nettoyée.

Existe-t-il un meilleur moyen d'obtenir les notifications IDS en temps réel avec NotifyOSD, que:

#!/bin/bash
watch -n1 notify-send "$temp.snort.log"
truncate -s 0 "$temp.snort.log"
1
safesploit

Tu pourrais essayer:

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

tail -f conserve le fichier ouvert et imprime de nouvelles lignes à mesure qu'elles sont ajoutées au fichier. xargs lit ensuite chaque ligne et exécute notify-send dessus. Le -- signale la fin des options à notify-send, de sorte qu'une ligne commençant par - n'est pas accidentellement considéré comme une option.

3
muru