Come creare un semplice script per elencare le caselle di posta con errori per limiti di capienza su server con Postfix .
Lo script è piuttosto semplice e si limita ad estrarre le informazioni dal file di log e farle filtrare da awk per ottenere l'elenco che ci interessa.
Create il file list_mail_overquota utilizzando il vostro editor preferito. Non essendo un guru dei sistemi Unix-like non amo il sofisticato Emacs e nemmeno il potente quanto macchinoso vi e solitamente utilizzo joe o nano. Ovviamente se utilizzate un'interfaccia grafica (cosa peraltro insolita su un server GNU/Linux) potete affidarvi ad un altro editor di vostro piacimento.
joe list_mail_overquotaIl contenuto sarà piuttosto scarno e sarà costituito da alcuni comandi concatenati che servono ad estrarre dal file di LOG le informazioni che ci interessano e d a trasformarle in modo da visualizzare solamente quello che coi interessa in una forma semplice e leggibile.
- #!/bin/bash
- grep "over quota" /var/log/mail.info | awk -f list_mail_overquota.awk | sort
dallo script potete già notare che awk viene richiamato passandogli un file contenente le regole per filtrare l'output estratto tramite grep. Non ci resta quindi che creare il file:
joe list_mail_overquota.awk- /quota/ {
- indirizzo = $7
- sub(/to=/, "",indirizzo)
- sub(/</, "",indirizzo)
- sub(/>/, "",indirizzo)
- sub(/,/, "",indirizzo)
- conta[indirizzo] += 1
- }
- END {
- for (i in conta) {
- print "Per: " i ":" conta[i]
- }
- }
Il funzionamento è abbastanza semplice:
ora dobbiamo rendere eseguibile lo script:
chmod +x list_mail_overquota
e non ci resta che farlo eseguire:
./list_mail_overquota
per ottenere l'elenco dei nostri utenti che non provvedono a ripulire regolarmente la propria casella di posta
Per: user1@inforisorse.it:61
Per: user2@inforisorse.it:98
come potete notare, l'output generato è molto semplice, dato che per le mie necessità basta, ma con poche modifiche potete adattarlo ad eventuali esigenze più sofisticate.

Se questa documentazione ti è stata utile, una donazione sarà ben accetta