Ho bisogno di elaborare tutti i messaggi di log da Postfix ( /var/log/mail/mail.log
), e stampare un sommario / statistiche (quante email sono state inviate / ricevute e da / a quali indirizzi email)
La situazione è resa più complicata dal fatto che Postfix ha voci di registro su più righe (al contrario, Apache
, ad esempio, ha voci a riga singola e l'attività sarebbe stata molto più semplice).
Un log di Postfix di esempio potrebbe avere un aspetto simile al seguente:
2013-12-03 14:40:45 postfix: 6F1AA10B: client=unknown[64.12.143.81]
2013-12-03 14:40:45 postfix: 6F1AA10B: message-id=<[email protected]>
2013-12-03 14:40:45 postfix: 6F1AA10B: from=<[email protected]>, size=1571, nrcpt=1 (queue active)
2013-12-03 14:40:45 postfix: 6F1AA10B: to=<[email protected]>, relay=local, delay=0.13, delays=0.13
2013-12-03 14:40:45 postfix: 6F1AA10B: removed
2013-12-03 14:52:07 postfix: 9DD9610B: client=unknown[209.85.219.65]
2013-12-03 14:52:07 postfix: 9DD9610B: message-id=<[email protected]>
2013-12-03 14:52:07 postfix: 9DD9610B: from=<[email protected]>, size=2388, nrcpt=1 (queue active)
2013-12-03 14:52:07 postfix: 9DD9610B: to=<[email protected]>, orig_to=<[email protected]>, relay=local
2013-12-03 14:52:07 postfix: 9DD9610B: removed
Ogni messaggio di posta elettronica elaborato da Postfix ha un ID messaggio univoco (nel mio esempio 6F1AA10B
).
Quale sarebbe l'approccio migliore per elaborare i log in Python? Quale struttura dati consiglieresti di utilizzare per l'archiviazione delle voci?