Hi,

some days ago Wietse mentioned auxiliary/collate/collate.pl in the
Postfix 3.2 source-code distribution. I did try my luck with it and it
is pretty impressive.

There remains one problem for me: it got this regular expression:

my $instre = qr{(?x)
        \A                      # Absolute line start
        (?:\S+ \s+){3}          # Timestamp, adjust for other time formats
        \S+ \s+                 # Hostname
        (postfix(?:-\S+)?)/     # postfix instance
        };

and later:

while (<>) {
        next unless m{$instre}ogc; my $inst = $1;

For something like
Aug 23 17:07:25 host postfix/smtp[16110]: 16C3436A25A: to=...
it extracts "postfix" as instance name.

For something like
Aug 23 17:07:25 host postfix-sec/smtp[16110]: 16C3436A25A: to=...
it extracts "postfix-sec" as instance name.

I have a habit of using syslog_name in master.cf when using copies of
existing lines to distinguish them from the original. For example:
smtp unix - - y - - smtp
slow unix - - y - - smtp -o syslog_name=postfix_slow

This would give me:
Aug 23 17:07:25 host postfix_slow/smtp[16110]: 16C3436A25A: to=...
In a secondary instance I would change that to
Aug 23 17:07:25 host postfix_slow-sec/smtp[16110]: 16C3436A25A: to=...

I would like to have postfix and postfix_slow in one block, while
postfix-sec and postfix_slow-sec in another block. Could someone help me
modify this part of the regular expression:

        (postfix(?:-\S+)?)/ # postfix instance

so that it spits out "postfix" and "postfix-sec" while deleting the
"_slow" part? Much appreciated!

Kind regards,
Robert



Reply via email to