[Linux-Biella] log di sendmail

Andrea Ferraris linux@ml.bilug.linux.it
Sat, 18 Oct 2003 10:47:35 +0200


> Mi ero dimenticato. Forse (mai provato, quindi
> non so se funziona) la soluzione concettualmente e praticamente migliore
> sarebbe modificare syslog.conf (man syslog.conf) in modo
> che i sistemi di mail loggino su una named pipe
>
http://216.239.59.104/search?q=cache:N-6Lvq_WAXIJ:www.scs.ryerson.ca/~rnagendr/namedpipe.pdf+Named+Pipe&hl=it&ie=UTF-8
> invece che su un file di log come adesso
> e poi aggiungere uno script di init che vada a leggere la named pipe
creata,
> la filtri per il messaggio che non vuoi venga loggato
> e scriva l'output  su un nuovo log per i sistemi di mail.
> In pratica lo script sarebbe una cosa davvero minima
> del tipo
> /bin/grep -v pattern_della_riga_di_messaggio_che_non_vuoi_loggare
> Nome_della_Named_Pipe_per_il_logging_dei_msgg_di_mail  \
>  >> /var/log/maillog.log
> Unica accortezza richiesta e` scegliere accuratamente
> pattern_della_riga_di_messaggio_che_non_vuoi_loggare
> in modo che non vengano eliminati anche altri messaggi.

Provato. Funziona.

Basta:

- creare una named pipe (mkfifo /var/log/mail)
- cambiare in /etc/syslog.conf il file di logging dei messaggi dei programmi
di mail
   indicandogli quel file (nel mio caso ho sostituito /var/log/maillog con
|/var/log/mail)
-  aggiungere nello script di init che fa partire sendmail (nel mio caso
/etc/rc.d/init.d/sendmail)
    nella riga prima di quella che fa partire il programma
   /bin/grep -v pattern_della_riga_di_messaggio_che_non_vuoi_loggare \
   /var/log/mail >> /var/log/maillog &

/etc/rc.d/init.d/syslog restart
/etc/rc.d/init.d/sendmail restart

Finito. Il file di sistema in cui vengono registrati i messaggi resta lo
stesso, vengono
solo eliminate le righe che la grep -v esclude.

Mi sembra la soluzione piu` efficace, efficiente e pulita.

Andrea