Hallo zusammen,
wer wie ich auch keine nackten Gruppenadressen in Logdateien mag, für den hätte ich hier einen Ansatz.
1. Die Datei /etc/wiregate/eibga.conf sollte mit allen GAs und deren Namen gepflegt sein. Jeder GA-Name sollte mit einem eindeutigen Kürzel beginnen (etwa ""
2. Optional: eine Datei /etc/wiregate/eibpa.conf mit einer Tabelle der physikalischen Adressen erzeugen. (eine Zeile pro Gerät, einfach den Klarnamen des Gerätes und dahinter die phys. Adresse).
Das folgende Script als "eibdecode" in den Pfad (zB /root/bin) ablegen und ausführbar (chmod a+x /root/bin/eibdecode) machen.
Nun sieht ein Log entweder so aus:
oder so:
Have fun!
Fry
wer wie ich auch keine nackten Gruppenadressen in Logdateien mag, für den hätte ich hier einen Ansatz.
1. Die Datei /etc/wiregate/eibga.conf sollte mit allen GAs und deren Namen gepflegt sein. Jeder GA-Name sollte mit einem eindeutigen Kürzel beginnen (etwa ""
2. Optional: eine Datei /etc/wiregate/eibpa.conf mit einer Tabelle der physikalischen Adressen erzeugen. (eine Zeile pro Gerät, einfach den Klarnamen des Gerätes und dahinter die phys. Adresse).
Das folgende Script als "eibdecode" in den Pfad (zB /root/bin) ablegen und ausführbar (chmod a+x /root/bin/eibdecode) machen.
Code:
#!/usr/bin/perl -W ############# # eibdecode # ############# # Wiregate-Utility # (c) 2012 Fry under the GPL v2 or later use strict; # Physical addresses: # Read /etc/wiregate/eibpa.conf if existent # simple format, e.g.: # # MDT DaliControl 1.1.23 # LJ Netzteilaktor 1.1.1 # MDT Taster 12 1.1.12 # ..... # my %eibpa=(); open CONF, "</etc/wiregate/eibpa.conf" || return "Could not open eibpa.conf for reading"; $/="\n"; while(<CONF>) { next unless /^(.*)\s+([0-9]+\.[0-9]+\.[0-9]+)\s*$/; $eibpa{$2}=$1; $eibpa{$1}=$2; } close CONF; # Group addresses: # Read /etc/wiregate/eibshort.pl if existent and newer than /etc/wiregate/eibga.conf # otherwise generate that file # eibshort is a hash containing the first word of each GA name # (used as "short description" in my GA scheme) my %eibshort; if(-f '/etc/wiregate/eibga.conf' && -f '/etc/wiregate/eibshort.pl' && -M '/etc/wiregate/eibga.conf' > -M '/etc/wiregate/eibshort.pl') { $/=undef; open PL, "</etc/wiregate/eibshort.pl"; eval <PL>; close PL; } else { # parse eibga.conf open CONF, "</etc/wiregate/eibga.conf" || return "Could not open eibga.conf for reading"; $/="\n"; my $hash={}; while(<CONF>) { if(/^\[([0-9]+\/[0-9]+\/[0-9]+)\]\s*$/) { my $newhash = { ga => $1 }; if(exists $hash->{name} && exists $hash->{ga}) { $hash->{name}=~/^\s*(\S+)/; my $short=$1; $short='ZV_'.$1 if $hash->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand $eibshort{$short}=$hash; $eibshort{$hash->{ga}}=$short; } # start new record $hash=$newhash; } elsif(/^\s*(.*?)\s*\=\s*(.*)\s*$/) { $hash->{$1} = $2; } } close CONF; if(exists $hash->{name} && exists $hash->{ga}) { $hash->{name}=~/^(\S+)\s/; my $short=$1; $eibshort{$short}=$hash; $eibshort{$hash->{ga}}=$short; } # Now write eibshort.pl open PL, ">/etc/wiregate/eibshort.pl" || return "Could not open eibga.conf for reading"; my $count=0; print PL "%eibshort = (\n"; for my $s (keys %eibshort) { if(ref $eibshort{$s}) { print PL "\t'$s' => {\n"; for my $t (keys %{$eibshort{$s}}) { print PL "\t\t'$t' => '$eibshort{$s}{$t}',\n"; } print PL "\t},\n"; $count++; } else { print PL "\t'$s' => '$eibshort{$s}',\n" } } print PL ");\n"; close PL; } # Eliminate back-translation from hashes for my $k (keys %eibshort) { delete $eibshort{$k} unless $k=~/^[0-9]+\/[0-9]+\/[0-9]+$/; } for my $k (keys %eibpa) { delete $eibpa{$k} unless $k=~/^[0-9]+\.[0-9]+\.[0-9]+$/ } # Sort patterns by decreasing length my @eibshortpt=sort { length($b) cmp length($a) } keys %eibshort; my @eibpapt=sort { length($b) cmp length($a) } keys %eibpa; # act as a decoder filter for stdin $/="\n"; while(<>) { for my $k (@eibshortpt) { my $p=quotemeta $k; s/$p/$eibshort{$k}/ge; } for my $k (@eibpapt) { my $p=quotemeta $k; s/$p/$eibpa{$k}/ge; } print; }
Code:
tail /var/log/eib.log 2012-04-24 13:46:57.706,A_GroupValue_Write,0.0.0,6/2/186,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:47:11.542,A_GroupValue_Write,1.1.18,6/4/191,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:47:37.939,A_GroupValue_Write,1.1.18,6/4/191,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:48:37.136,A_GroupValue_Write,0.0.0,14/2/138,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:48:38.704,A_GroupValue_Write,1.1.18,6/4/191,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:48:43.120,A_GroupValue_Write,1.1.18,6/4/191,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:49:13.331,A_GroupValue_Write,0.0.0,14/2/138,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:49:45.708,A_GroupValue_Write,0.0.0,14/0/138,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:49:56.532,A_GroupValue_Write,1.1.18,6/4/191,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.269,A_GroupValue_Write,0.0.0,15/3/10,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.515,A_GroupValue_Write,0.0.0,15/3/13,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.794,A_GroupValue_Write,0.0.0,15/3/11,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.997,A_GroupValue_Write,0.0.0,15/3/15,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:32.082,A_GroupValue_Write,0.0.0,15/3/14,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:32.148,A_GroupValue_Write,0.0.0,15/3/12,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:32.214,A_GroupValue_Write,0.0.0,15/3/16,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:52:24.094,A_GroupValue_Write,0.0.0,6/2/186,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.479,A_GroupValue_Read,0.0.0,15/3/17,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.789,A_GroupValue_Read,0.0.0,15/3/18,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.853,A_GroupValue_Read,0.0.0,15/3/19,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.919,A_GroupValue_Write,0.0.0,15/0/20,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:56:31.304,A_GroupValue_Write,0.0.0,15/3/10,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
Code:
tail /var/log/eib.log | eibdecode 2012-04-24 13:46:57.706,A_GroupValue_Write,0.0.0,TA_A2,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:47:11.542,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:47:37.939,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:48:37.136,A_GroupValue_Write,0.0.0,WD_Temperatur,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:48:38.704,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:48:43.120,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,01,1,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:49:13.331,A_GroupValue_Write,0.0.0,WD_Temperatur,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:49:45.708,A_GroupValue_Write,0.0.0,WA_Temperatur,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:49:56.532,A_GroupValue_Write,P_SZ_Decke,PM_SZ_Decke,00,0,,1.017,0,low,6,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.269,A_GroupValue_Write,0.0.0,SB_gelb1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.515,A_GroupValue_Write,0.0.0,SB_blau1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.794,A_GroupValue_Write,0.0.0,SB_rot1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:31.997,A_GroupValue_Write,0.0.0,SB_khaki1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:32.082,A_GroupValue_Write,0.0.0,SB_schwarz1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:32.148,A_GroupValue_Write,0.0.0,SB_gruen1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:51:32.214,A_GroupValue_Write,0.0.0,SB_gelb2,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:52:24.094,A_GroupValue_Write,0.0.0,TA_A2,0C 8A,23.24,,9.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.479,A_GroupValue_Read,0.0.0,SB_rot2,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.789,A_GroupValue_Read,0.0.0,SB_gruen2,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.853,A_GroupValue_Read,0.0.0,SB_blau2,00,0,,1.002,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:55:42.919,A_GroupValue_Write,0.0.0,SA_Alarmanlage_aktiv,00,0,,1.001,0,low,7,T_DATA_XXX_REQ,0 2012-04-24 13:56:31.304,A_GroupValue_Write,0.0.0,SB_gelb1,01,1,,1.002,0,low,7,T_DATA_XXX_REQ,0
Fry
Kommentar