Bonjour a tous,
Je souhaiterai écrire une petit programe probablement en bash, perl, awk ou
autre peu importe, qui me permette d'afficher un fichier de log de facon
selective.
Il s'agit de logs radius qui se présentent par blocs, exemple :
Packet-Type = Access-Request
Thu Jun 24 23:58:07 2008
User-Name = "jp1234@???"
User-Password = "******"
NAS-IP-Address = 192.168.20.1
Framed-IP-Address = 192.168.30.2
NAS-Identifier = "Virtual-NASMONITOR"
Proxy-State = 0x3932
Client-IP-Address = 199.33.33.199
Packet-Type = Access-Accept
Thu Jun 24 23:58:07 2008
NAS-IP-Address = 192.168.20.1
Client-IP-Address = 199.33.33.199
Realm = "dummy.fr"
Je voudrais afficher en temps réel dans un terminal (l'equivalent d'un "tail
-f "), ou stocker dans un fichier tous les blocs qui contiennent un pattern
particulier, par exemple une adresse ip précise.
Mon probleme c'est d'afficher le bloc complet, les blocs étant séparé par
une ligne vide et la valeur recherhé pouvant se situer a n'importe quel
endroit du bloc, qui n'a de plus pas une longueur fixe.
Ce qui me manque principalement c'est une programme qui soit en écoute à la
fin du fichier de log, qui stocke ce qu'il recoit jusqu'a recevoir une
marque de fin de bloc, puis envoie ce bloc complet en traitement à un autre
programme par exemple.
Une idée?
Merci,
Jean-Michel.