Sendmail log

Jaroslav Gratz xgratz01 na stud.fee.vutbr.cz
Středa Červen 7 01:06:33 CEST 2000


On Tue, 6 Jun 2000, Ivo Hanuska wrote:

>  Problem je spis kosmetickeho razu. Daemon je v inetd a jde pres tcpd. Ale ť
>  s tim delam co delam, tak ta mrcha pri kazdem sahnuti uzivatele do mailboxu
>  pres pop3 udela do logu mailoveho systemu polozku:
> 
>  Jun  5 09:51:11 main ipop3d[9245]: port 110 service init from
>  212.20.71.147
>  Jun  5 09:51:11 main ipop3d[9245]: Login user=blabla
>  host=dhcp01.trade-cz.com [212.20.71.147] nmsgs=0/0
>  Jun  5 09:51:11 main ipop3d[9245]: Logout user=blabla
>  host=dhcp01.trade-cz.com [212.2071.147] nmsgs0 ndele=0.
> 
>  Nevite na jake urovni v syslogd se tato vec zaznamenava. Nebo jak docilit
>  toho aby se daemon ipop3d "vykecaval" nekde jimnde nez do logu mailoveho
>  systemu? Zkousel jsem odstranit tcpd, rozjet to samostatne, zkousel jsem
>  vsechny urovne v syslogd a NIC! Mam snad sahnout do zdrojaku? A pokud ano,
>  kde je mam vzit?

Zdrojáky doporučuji stáhnout třeba z Internetu :-)

Řeseni na úrovni source code je jednoduché a elegantní. Někde ve zdrojáku
bude něco jako

openlog("ipop3d", pid, LOG_MAIL);   to stačí změnit na
openlog("ipop3d", pid ,LOG_LOCAL1);

Pak je třeba jeste upravit /etc/syslog.conf aby tam bylo:

*.info;mail.none;authpriv.none;local1.none   /var/log/messages
local1.*                                     /cesta/logy_ipop3d           


--------------------------------------------------------------------

Druha možnost bez úpravy zdrojáků je poněkud krkolomná, nicméně taky
funkční. V principu něco takového:

mkfifo /nekde/fifo1 ; mkfifo /nekde/fifo2
grep "ipop3d" /nekde/fifo1 >>logy_ipop3d
grep -v "ipop3d" /nekde/fifo2 >>vsechno_krome_ipop3d

A upravit /etc/syslog.conf:

mail.*          |/nekde/fifo1
mail.*          |/nekde/fifo2


BTW proč vám vadí, že se logy z pop3 démona zaznamenávají do 
/var/log/maillog? 
Vždycky stačí udělat grep -v ipop3d a lehce se jich zbavíte.


Jaroslav Gratz



Další informace o konferenci Linux