Ankündigung

Einklappen
Keine Ankündigung bisher.

Utility: Gruppenadressen in Logdateien decodieren

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Zitat von makki Beitrag anzeigen
    Das ist doch mal ne Massnahme! Danke! Sehe ich mir an sobald sich der Nebel an der Ostfront lichtet. aber wird sicher übernommen. Weil bestellt
    Habe gerade noch einen kleineren Bug gefunden, der sich auf die Konfigurationseinträge ohne Header ($wg_config{''}{'eib_logging'} usw) bezieht. Gemerkt habe ich den Bug daran, dass das EIB-Logging auf einmal nicht mehr funktionierte. War aber leicht zu beheben.

    Geändert haben sich nur zwei Zeilen (my $key=''; statt my $key=undef; und if(defined $key) statt if($key) ).

    Ich poste dennoch nochmal den gesamten Patch.

    Grüße, Fry

    Code:
    --- wiregated.pl.mod-2012-04-24 2012-04-28 11:04:31.000000000 +0200
    +++ wiregated.pl        2012-04-30 23:52:41.000000000 +0200
    @@ -31,7 +31,8 @@
     use IO::Socket;
     use IO::Select;
     use FileHandle;
    -use Config::Std { def_sep => '=', read_config => 'my_read_cfg', write_config => 'my_write_cfg' }; #FIXME: 1244kB
    +sub my_read_cfg;
    +sub my_write_cfg;
     # fork daemon
     use Proc::Daemon;
     Proc::Daemon::Init unless $opts{d};
    @@ -95,7 +96,6 @@
     
     my %wg_config;
     my %eibgaconf;
    -my %wg_config_local;
     my %wg_state;
     my @a_owdev_buttons;
     my @a_owdev_pio;
    @@ -1126,8 +1126,7 @@
     # (re)read config
     if ((stat($owdev_cfgfile))[9] > $lastreadtime) {
         if (-e $owdev_cfgfile) {
    -        my_read_cfg $owdev_cfgfile => %wg_config_local;
    -        %wg_config = %wg_config_local;
    +        my_read_cfg $owdev_cfgfile, \%wg_config;
             $lastreadtime = time();
             while( my ($k, $v) = each(%wg_config) ) {
                     DEBUG("CONFIG: Sensor $k Type $wg_config{$k}{'type'} !");
    @@ -1152,7 +1151,7 @@
           }
         }
         if (-e '/etc/wiregate/eibga.conf') { 
    -      my_read_cfg '/etc/wiregate/eibga.conf' => %eibgaconf;
    +      my_read_cfg '/etc/wiregate/eibga.conf', \%eibgaconf;
         }
         } else {
             LOGDIE("unable to read config $owdev_cfgfile");
    @@ -1342,7 +1341,7 @@
         if($wg_config{''}{'eib_logging'} eq "1") { close FILE_EIBLOG; }
         $xpl->send_hbeat_end() if defined $xpl; 
         # save state 
    -    my_write_cfg %wg_state, $owdev_statefile;
    +    my_write_cfg \%wg_state, $owdev_statefile;
         threads->exit(); 
         };
     $SIG{KILL} = sub { 
    @@ -1350,19 +1349,19 @@
         if($wg_config{''}{'eib_logging'} eq "1") { close FILE_EIBLOG; }
         $xpl->send_hbeat_end() if defined $xpl; 
         # save state 
    -    my_write_cfg %wg_state, $owdev_statefile;
    +    my_write_cfg \%wg_state, $owdev_statefile;
         threads->exit(); 
         };
     
     # Read state
     if (-e $owdev_statefile) {
    -        eval { my_read_cfg $owdev_statefile => %wg_state; };
    +        eval { my_read_cfg $owdev_statefile, \%wg_state; };
             if ($@) { #statefile trashed, recreate
    -      my_write_cfg %wg_state, $owdev_statefile;
    +      my_write_cfg \%wg_state, $owdev_statefile;
           INFO("statefile unreadable $owdev_statefile re-created");
         }
     } else { # create state file 
    -    my_write_cfg %wg_state, $owdev_statefile;
    +    my_write_cfg \%wg_state, $owdev_statefile;
         INFO("statefile $owdev_statefile created");
     }
     
    @@ -1425,7 +1424,7 @@
       # save state
       if (time() > $laststatesaveime+30) {
         $laststatesaveime = time();
    -    my_write_cfg %wg_state, $owdev_statefile;
    +    my_write_cfg \%wg_state, $owdev_statefile;
         DEBUG("statefile $owdev_statefile saved");
       }
     
    @@ -1475,7 +1474,7 @@
     }
     DEBUG("Thread ow2eib normal exit;");
     # save state 
    -my_write_cfg %wg_state, $owdev_statefile;
    +my_write_cfg \%wg_state, $owdev_statefile;
     $xpl->send_hbeat_end() if defined $xpl; 
     } # END ow2eib-thread
     
    @@ -2269,6 +2268,98 @@
       return @ret;
     }
     
    +
    +sub my_read_cfg
    +{
    +    my $cfgfile=shift;
    +    my $cfghash=shift;
    +    %{$cfghash}=();
    +
    +    open CONF, "<$cfgfile" || die "Could not open $cfgfile for reading";
    +    $/="\n";
    +    
    +    my $record={};
    +    my $key='';
    +
    +    while(<CONF>)
    +    {
    +       if(/^\s*\[\s*(.+?)\s*\]\s*$/)
    +       {
    +           my $newkey=$1;
    +                     
    +           if(defined $key) # flush last record
    +           {
    +               if(defined $record->{name} && $cfgfile=~/eibga/)
    +               {
    +                   $record->{ga}=$key;
    +                   $cfghash->{$record->{name}}=$record;
    +                   
    +                   # specific to my GA scheme (Fry)
    +                   $record->{name}=~/^\s*(\S+)/;
    +                   $record->{short}=$1;
    +                   $record->{short}="ZV_$1" if $record->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand"
    +                   $cfghash->{$record->{short}}=$record;
    +                   # end of specific part
    +               }
    +               $cfghash->{$key}=$record;
    +           }
    +           
    +           # start new record
    +           $record={};
    +           $key=$newkey;
    +       }
    +       elsif(/^\s*(.+?)\s*\=\s*(.*?)\s*$/)
    +       {       
    +           $record->{$1} = $2;
    +       }
    +    }
    +    close CONF; 
    +    
    +    if($key) # flush last record
    +    {
    +       if(defined $record->{name} && $cfgfile=~/eibga/)
    +       {
    +           $record->{ga}=$key;
    +           $cfghash->{$record->{name}}=$record;
    +           
    +            # specific to my GA scheme (Fry)
    +           $record->{name}=~/^\s*(\S+)/;
    +           $record->{short}=$1;
    +           $record->{short}="ZV_$1" if $record->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand"
    +           $cfghash->{$record->{short}}=$record;
    +           # end of specific part
    +       }
    +       $cfghash->{$key}=$record;
    +    }
    +} 
    +    
    +
    +sub my_write_cfg
    +{
    +    my $cfghash=shift;
    +    my $cfgfile=shift;
    +
    +    open CONF, ">$cfgfile" || die "Could not open $cfgfile for writing";
    +    
    +    for my $s (keys %{$cfghash})
    +    {
    +       next if $cfgfile=~/eibga/ && $s!~/^[\'\/0-9]+$/;
    +       
    +       print CONF "[$s]\n";
    +
    +       for my $k (keys %{$cfghash->{$s}})
    +       {
    +           print CONF "\t$k = $cfghash->{$s}{$k}\n";
    +       }
    +    }
    +    
    +    close CONF;
    +}
    +
    +
    +
    +
    +
     =pod
     
     =head1 NAME

    Kommentar


      #17
      Das war mir schon aufgefallen, weil mein eib.log begrüsste mich heute auch recht leer, mein Fix war aber 2 Zeilen länger, daher..->commited
      (Ich muss mir aber noch ansehen das das mit der eibgaconf keine unerwünschten Nebenwirkungen hat; sieht nicht so aus aber..)

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #18
        Hallo Chris (Fry),
        ich würde gern Dein eibdecode einsetzen, allerdings mit vollen GA-Namen. Ich habe dazu das Perl-Script aus Post #1 und die Änderungsempfehlung aus Post #2 umgesetzt. Nun erhalte ich

        Code:
        root@wiregate415:~/bin# tail /var/log/eib.log | ./eibdecode 
        Scalar found where operator expected at ./eibdecode line 62, near "$eibshort"
            (Missing semicolon on previous line?)
        syntax error at ./eibdecode line 62, near "$eibshort"
        Global symbol "$short" requires explicit package name at ./eibdecode line 62.
        Global symbol "$short" requires explicit package name at ./eibdecode line 63.
        Global symbol "$newhash" requires explicit package name at ./eibdecode line 67.
        syntax error at ./eibdecode line 69, near "elsif"
        Global symbol "$hash" requires explicit package name at ./eibdecode line 76.
        Global symbol "$hash" requires explicit package name at ./eibdecode line 76.
        Global symbol "$hash" requires explicit package name at ./eibdecode line 78.
        Global symbol "$hash" requires explicit package name at ./eibdecode line 80.
        Global symbol "$hash" requires explicit package name at ./eibdecode line 81.
        syntax error at ./eibdecode line 112, near "}"
        ./eibdecode has too many errors.
        Das Original-Script aus Post #1 lief ohne Fehler, zeigte jedoch kurze GA-Namen. Leider bin ich in Perl nicht bewandert. Hast Du einen Tipp für mich?
        Gruß, Joachim
        PS: Das von mir eingesetzte, leider jedoch den Fehler ausgebende Script:
        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})
                    {
                my $short=$hash->{name}
                        $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;
        }
        EibPC - Wiregate

        Kommentar


          #19
          hinter der Zeile
          Code:
          my $short=$hash->{name}
          fehlt ein Semikolon (auch schon in meinem Posting).

          Außerdem musst du die im Post #2 genannte Ersetzung ein zweites Mal weiter unten im Code machen.

          Sag Bescheid, wenn es dann immer noch nicht klappt.

          VG,
          Fry (ich ziehe den Nick vor, wofür ist man denn im Internet?)

          Kommentar


            #20
            Hallo Fry,
            sorry - ich stelle mich gerade total blöd an. Im letzten Post sprichst Du von einer zweiten Ersetzung. Den Suchbegriff (die 3 in Post #2 genannten 3 Zeilen) kommen jedoch nur einmal vor.
            Ich suche hier einmal nur nach dem Anfang der ersten Zeile des Suchbegriffs:
            Code:
            user@wiregate415:~/bin$ grep -n -- "$hash->{name}=" eibdecode.orig 
            61:                $hash->{name}=~/^\s*(\S+)/;
            63:                $short='ZV_'.$1 if $hash->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand
            80:        $hash->{name}=~/^(\S+)\s/;
            Es gibt also Treffer in Zeile 61 und 80. Zeilen 80 bis 82 sehen aber so aus:
            Code:
            user@wiregate415:~/bin$ head -82 eibdecode.orig  | tail -3
                    $hash->{name}=~/^(\S+)\s/;
                    my $short=$1;
                    $eibshort{$short}=$hash;
            entsprechen also nicht dem Suchbegriff. Von diesen 3 Zeilen habe ich testweise einmal die ersten beiden ersetzt durch
            Code:
            my $short=$hash->{name};
            Nun gibt es zwar keine Fehlermeldungen mehr, sondern z.B. diese Ausgabe:
            Code:
            root@wiregate415:~/bin# tail /var/log/eib.log | eibdecode 
            readline() on closed filehandle CONF at /root/bin/eibdecode line 24.
            2012-05-02 07:33:19.905,A_GroupValue_Write,0.0.0,EG,0C 26,21.24,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
            2012-05-02 07:33:20.710,A_GroupValue_Write,0.0.0,EG,0C 9A,23.56,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
            2012-05-02 07:33:21.523,A_GroupValue_Write,0.0.0,EG,0C 87,23.18,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
            2012-05-02 07:33:22.337,A_GroupValue_Write,0.0.0,EG,0C 5E,22.36,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
            2012-05-02 07:33:23.881,A_GroupValue_Write,0.0.0,EG,0C 84,23.12,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ,0
            2012-05-02 07:33:31.189,A_GroupValue_Write,1.1.62,EG,0D 14,26,DPT_Value_Lux,9.004,0,low,6,T_DATA_XXX_REQ,0
            2012-05-02 07:33:32.591,A_GroupValue_Write,1.1.66,EG,04 4C,11,DPT_Value_Lux,9.004,0,low,6,T_DATA_XXX_REQ,0
            2012-05-02 07:33:48.845,A_GroupValue_Write,1.1.63,EG,0F 3A,37,DPT_Value_Lux,9.004,0,low,6,T_DATA_XXX_REQ,0
            2012-05-02 07:33:51.038,A_GroupValue_Write,1.1.45,EG,00 00,0,DPT_UElCurrentmA,7.012,0,low,6,T_DATA_XXX_REQ,0
            2012-05-02 07:33:51.367,A_GroupValue_Write,1.1.45,EG,00 1F,31,DPT_UElCurrentmA,7.012,0,low,6,T_DATA_XXX_REQ,0
            So wirkliche Langnamen sind das aber nicht. Ich verwende GA-Namen wie "EG Kü SD O Fenster SV-4/1/130". Die Ausgabe beinhaltet das "EG", das bei mir jedoch alles andere als eindeutig ist. Könntest Du wohl bitte einmal das ganze Script noch einmal posten, welches dann die Langnamen ausgeben sollte?
            Herzlichen Dank.
            Gruß, Joachim
            EibPC - Wiregate

            Kommentar


              #21
              Ich vermute, du hast /etc/wiregate/eibshort.pl nicht gelöscht - da hebt eibdecode den decodierten eibshort-Hash auf, damit er nicht jedesmal neu erstellt werden muss...

              Egal, der Code ist auch nicht auf maximale Effizienz oder Kürze getrimmt, sondern auf Wiederverwendbarkeit in anderen Anwendungen. Hier also nochmal der komplette Code:

              Code:
              #!/usr/bin/perl -W
              
              #############
              # eibdecode #
              #############
              # Wiregate-Utility
              # (c) 2012 Fry under the GPL v2 or later
              
              use strict;
              
              my $pattern=undef;
              $pattern=shift @ARGV if @ARGV; # argument interpreted as "grep"-pattern
              
              # 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
                              my $short=$hash->{name};
                              $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;
              #       $short='ZV_'.$1 if $hash->{name}=~/^Zeitversand.*(Uhrzeit|Datum)/; # short versions of "Zeitversand
                      my $short=$hash->{name};
                      $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"; $|=1; # for piping
              
              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 if !$pattern || /$pattern/;
              }
              dieses eibdecode kann sogar noch etwas mehr: mit

              tail /var/log/eib.log | eibdecode Schlafzimmer

              filterst du die Zeilen raus, die "Schlafzimmer" enthalten. (ohne Argument funktioniert eibdecode wie vorher).

              VG, Fry

              Kommentar


                #22
                Hallo Fry!

                Perfekt! Nun klappts!
                Danke Dir.

                Gruß, Joachim
                EibPC - Wiregate

                Kommentar


                  #23
                  So, nun habe ich auch endlich mal eine eibpa.conf angelegt :-)

                  Und gleich die nächste Frage: wie kann man synchron zu eib.log eine eib_pa.log schreiben lassen (die dann schon die "übersetzen" Werte enthält)? Dann könnte man sich diese auch schick über http://wiregate:10000/wiregate/view_log.cgi anzeigen lassen.

                  Danke und VG
                  Micha

                  Kommentar


                    #24
                    Hier ist das Tool, das ich selbst zu diesem Zweck verwende. Es arbeitet als Filter für UNIX-Pipes und ersetzt alle numerischen Adressen durch die entsprechenden Kürzel.
                    VG, Fry
                    Angehängte Dateien

                    Kommentar


                      #25
                      Zitat von Fry Beitrag anzeigen
                      Hier ist das Tool
                      Hi Fry,

                      ich glaube nun haben wir uns missverstanden. Ich habe eibdecode natürlich schon am Start. Allerdings kann ich das ja nur auf der Kommandozeile benutzen. Aber ich hätte die ersetzen Werte gern in einem separaten Logfile (oder als eine Art "View/Link" auf "cat eib.log | eibdecode") um diese zb auch über eine Website anzuschauen: http://wiregate:10000/wiregate/view_log.cgi

                      Danke,
                      Micha

                      Kommentar


                        #26
                        Der einfachste Weg wäre ein Patchen des wiregated.pl, damit der gleich das Gewünschte ins Log schreibt.
                        Ansonsten müsstest du eibdecode "daemonizen" und dann den ganzen Zauber mit monit usw. starten, damit es auch am Laufen bleibt. Wäre mir aber zu anstrengend :-)
                        VG, Fry

                        Kommentar


                          #27
                          Naja, das ist mir momentan auch zu viel Aufwand für ein Nice-To-Have-Feature...

                          Evtl. liest ja StefanW mit und nimmt es in die Wunschliste auf. Wobei: das eib.log wird doch bestimmt von eibd und nicht vom wiregated geschrieben oder?

                          VG
                          Micha

                          Kommentar


                            #28
                            Nein, wiregated.pl schreibt eib.log.
                            VG; Fry

                            Kommentar


                              #29
                              Zitat von mivola Beitrag anzeigen
                              Evtl. liest ja StefanW mit und nimmt es in die Wunschliste auf.
                              Dann müsste ich nur noch verstehen um was es geht? Hab es nur ganz grob überflogen. Einmal lese ich PA und einmal lese ich Kurzbezeichnungen?

                              Am Besten sind für Wünsche aller Art übrigens Tickets mit Vorschlägen, weil das kann ich dann sehr leicht verwalten und ihr nehmt mit ein wenig Arbeit ab.

                              lg

                              Stefan

                              Kommentar


                                #30
                                Zitat von StefanW Beitrag anzeigen
                                Tickets mit Vorschlägen
                                = Mail an "support ät wiregate.de" inkl. Verweis auf diesen Thread?

                                Kommentar

                                Lädt...
                                X