Sebastian Suchanek
2017-01-04 18:30:25 UTC
Hallo NG!
Vor einiger Zeit hatte ich hierzugroup nach Monitoring-Lösungen
für INN gefragt[1]. Da ich damals nicht fündig geworden bin,
wollte ich nun eben selbst versuchen, mir etwas passendes zu
schreiben. Mein Plan dazu ist/war, ein Programm zu schreiben,
das sich als Channel bzw. Newsfeed in INN2 einklinkt und alle
für mich interessanten Daten zu durchlaufenden Postings
mitloggt.
Um überhaupt erstmal einen Anfang zu finden, habe ich mir
zunächst ein Perl-"Miniprogramm" geschrieben, das nichts weiter
tut als alles, was per STDIN vorgworfen bekommt, an eine
bestehende Datei anhängt.
,------------------
| #!/usr/bin/perl
|
| use strict;
| use warnings;
| use POSIX qw(strftime);
|
| my $filename = '/tmp/perltest.txt';
| my $current_time;
|
| open(my $fh, '>>', $filename) or die "Could not open file
| '$filename'";
|
| while(my $line = <>) {
| $current_time = strftime("%F %T", localtime);
| print $fh "$current_time $line";
| }
|
| close $fh;
'------------------
In der /etc/news/newsfeeds habe ich das wie folgt eingetragen:
| [...]
| sist!:*:Tc,Wm\
| :/usr/local/bin/test.pl
| [...]
Das Problem dabei: Die Msg-IDs werden zwar den Newsfeed
übergeben (zu sehen in /var/log/news/news), werden aber nicht
bzw. nicht zeitnah vom Perl-Programm verarbeitet. Erst wenn ich
INN beende, werden die Daten geschrieben.
Eine Änderung des Newsfeed-Typs von "Tc" nach "Tp" hat dazu
geführt, dass laut /var/log/news/news die Daten immer noch aber
den Newsfeed weitergereicht werden, das Perl-Programm aber gar
nichts mehr schreibt.
Wie kann ich also INN bzw. mein eigenes Programm dazu bringen,
die einlaufenden Daten auch wirklich zeitnah zu verarbeiten?
TIA,
Sebastian
_____
[1] <***@msgid.suchanek.de>
Vor einiger Zeit hatte ich hierzugroup nach Monitoring-Lösungen
für INN gefragt[1]. Da ich damals nicht fündig geworden bin,
wollte ich nun eben selbst versuchen, mir etwas passendes zu
schreiben. Mein Plan dazu ist/war, ein Programm zu schreiben,
das sich als Channel bzw. Newsfeed in INN2 einklinkt und alle
für mich interessanten Daten zu durchlaufenden Postings
mitloggt.
Um überhaupt erstmal einen Anfang zu finden, habe ich mir
zunächst ein Perl-"Miniprogramm" geschrieben, das nichts weiter
tut als alles, was per STDIN vorgworfen bekommt, an eine
bestehende Datei anhängt.
,------------------
| #!/usr/bin/perl
|
| use strict;
| use warnings;
| use POSIX qw(strftime);
|
| my $filename = '/tmp/perltest.txt';
| my $current_time;
|
| open(my $fh, '>>', $filename) or die "Could not open file
| '$filename'";
|
| while(my $line = <>) {
| $current_time = strftime("%F %T", localtime);
| print $fh "$current_time $line";
| }
|
| close $fh;
'------------------
In der /etc/news/newsfeeds habe ich das wie folgt eingetragen:
| [...]
| sist!:*:Tc,Wm\
| :/usr/local/bin/test.pl
| [...]
Das Problem dabei: Die Msg-IDs werden zwar den Newsfeed
übergeben (zu sehen in /var/log/news/news), werden aber nicht
bzw. nicht zeitnah vom Perl-Programm verarbeitet. Erst wenn ich
INN beende, werden die Daten geschrieben.
Eine Änderung des Newsfeed-Typs von "Tc" nach "Tp" hat dazu
geführt, dass laut /var/log/news/news die Daten immer noch aber
den Newsfeed weitergereicht werden, das Perl-Programm aber gar
nichts mehr schreibt.
Wie kann ich also INN bzw. mein eigenes Programm dazu bringen,
die einlaufenden Daten auch wirklich zeitnah zu verarbeiten?
TIA,
Sebastian
_____
[1] <***@msgid.suchanek.de>