Bonjour
Notre serveur de mail crache des logs tres volumineuses, je souhaite les envoyer dans un script perl mais la je seche sur la meilleure solution a utiliser.
Les information intéressantes sont présentes sur plusieurs ligne identifiables via un id
Ci dessous un exemple :
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 mod=session cmd=connect ip=23.85.98.81 country=us lip=172.192.33.12 prot=smtp:smtp routes= notroutes=internalnet,outbound,psm_client_users,spfsafe,tls perlwait=0.001
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 mod=session cmd=resolve host=mail-bw0-f221.google.com resolve=ok reverse=mail-bw0-f221.google.com routes= notroutes=firewallsafe
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=mail cmd=env_from value=emailsender@gmail.com qid=n5ntw8gq0-1 tls= routes= notroutes=SenderAdressInbound host=mail-bw0-f221.google.com ip=23.85.98.81
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=access cmd=run rule=spamsafe duration=0.000
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=session cmd=judge module=access rule=spamsafe
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=session cmd=dispose module=access rule=spamsafe action=execute value="svar('SpamScore', 0)"
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=mail cmd=env_rcpt r=1 value=emailrecipent@mydomain.co.uk verified=1 routes=default_inbound,inbound
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=mail cmd=attachment id=0 file=text.txt mime=text/plain type=txt omime=text/plain oext=txt corrupted=0 protected=0 size=61 virtual=0 a=0
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=mail cmd=attachment id=0 file=text.html mime=text/html type=html omime=text/html oext=html corrupted=0 protected=0 size=64 virtual=0 a=0
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=access cmd=run rule=spamsafe duration=0.001
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=session cmd=judge module=access rule=spamsafe
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=session cmd=dispose module=access rule=spamsafe action=execute value="svar('SpamScore', 0)"
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=av cmd=run rule=virusdefault_clean name= cleaned=0 vendor=fsecure duration=0.000
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=spam cmd=run rule=isaspam_safe policy=isaspam score=0 classifier= adjust=0 reason=safe engine=5.0.0-0908210000 definitions=main-1004150009 raw=0 tests=PP_FORCED_SCORE duration=0.000
Apr 15 09:47:04 MAILSRV m=1 x=n5ntw8gq0-1 mod=session cmd=judge module=av rule=virusdefault_clean
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=session cmd=judge module=spam rule=isaspam_safe
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 cmd=send profile=mail qid=o3F7gVAF004026 emailrecipent@mydomain.co.uk
Apr 15 09:47:04 MAILSRV rprt: s=n5ntw8gq0 m=1 x=n5ntw8gq0-1 mod=mail cmd=msg module=av rule=virusdefault_clean action=continue attachments=0 rcpts=1 routes=default_inbound,inbound size=1897 guid=d2be999d68dd942ae3812c8bbdd25e81 hdr_mid=<
Je souhaite transformer ce bloc en une ligne type :
Apr 15 09:47:04 MAILSRV cmd=env_from value=emailsender@gmail.com cmd=env_rcpt r=1 emailrecipent@mydomain.co.uk size=1897 guid=d2be999d68dd942ae3812c8bbdd25e81 qid=n5ntw8gq0-1
Le script va directement recevoir les lignes en STDIN.
Quelle logique utiliser ?
Partager