Script de récupération de données
Oula oula! j'ai mal au crâne!:cry:
Une journée sur un bout de script ... et toujours des problèmes.
Bonjour a tous; voila j'annonce:
On a un fichier avec des données du type:
Citation:
09:00:36.397170 IP 192.168.X.X.50782 > mtlxxxx.mtl.xxxxxx.fr.snmptrap: C=orsay Trap(52) E:cisco.1.359 192.168.X.X authenticationFailure 2589950544 [|snmp]
09:22:54.885940 IP 192.168.X.X.snmp > 255.255.255.255.snmptrap: Trap(49) E:683.6 192.168.X.X enterpriseSpecific s=5 500893300 E:[|snmp]
09:23:28.463050 IP 192.168.X.X.snmp > 255.255.255.255.snmptrap: Trap(49) E:683.6 192.168.X.X enterpriseSpecific s=2 500896400 E:[|snmp]
09:23:30.418903 IP 192.168.X.X.snmp > 255.255.255.255.snmptrap: Trap(49) E:683.6 192.168.X.X enterpriseSpecific s=1 500896580 E:[|snmp]
09:23:30.424026 IP 192.168.X.X.snmp > 255.255.255.255.snmptrap: Trap(49) E:683.6 192.168.X.X enterpriseSpecific s=5 500896580 E:[|snmp]
Et j'ai un script que j'ai pu créer il y a quelque jours grâce à vous (du moins ceux qui m'ont aider):
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
#!/bin/sh
killall tcpdump
FILESNMP=/var/SNMPlog
FILEALARM=/var/alarm.txt
cat $FILESNMP | awk '{print substr ($1,1,8), $9, $10}' | uniq >> $FILEALARM
#cat $FILESNMP | cut -f 1,11,12 -d " " | sed "s/\.[0-9]*/ /" >> $FILEALARM
#les deux commandes fonctionnent
tcpdump port 162 >> $FILESNMP |
mais voila, j'obtiens des données du type:
Citation:
09:00:36 192.168.X.X authenticationFailure //bien
09:22:54 enterpriseSpecific s=5 //pas bien
09:23:28 enterpriseSpecific s=2 //pas bien
09:23:30 enterpriseSpecific s=1 //pas bien
09:23:30 enterpriseSpecific s=5 //pas bien
Bon, voila, la première ligne j'obtiens ce que je veux, c'est à dire, l'heure, l'adresse, et le problème. mais après ce n'est pas le cas. Le problème venant du fait que les messages ne sont pas les mêmes.
en effet, les données sont décalés.
Comment faire alors en une ou plusieurs commande pour toujours recupérer les données voulu quelque soit le type de messages dans le fichier...
ah oui, en effectuant un:
cat $FILESNMP | awk '{print substr ($1,1,8), $8, $9}' | uniq >> $FILEALARM
mon script se bloque, et je sais pas pourquoi...
Bref, des petits soucis.