Archivio

Posts Tagged ‘server posta’

Sendmail – Gestire la coda

4 ottobre 2009 Marco Nessun commento

In questo articolo parleremo di alcune tecniche per pulire la coda di posta del’ MTA Sendmail, l’articolo rigurardante la coda di Qmail è disponibile qui

La prima procedura da compiere è fermare il server di posta

/etc/init.d/sendmail stop

Per muove la coda in un altra cartella e permettere a sendmail di processare una coda pulita i comandi da dare sono:

mv /var/spool/mqueue /var/spool/mqueue-fixme
mkdir /var/spool/mqueue
chmod 755 /var/spool/mqueue
chown root:daemon /var/spool/mqueue

Per eliminare i messaggi vuoti

cd /var/spool/mqueue-fixme
find . -size 0 -exec rm {} \;

Sendmail mantiene ogni singola email in due file distinti che inizioano con df o qf. Il file che inizia con qf contiene l’ hader del messaggio mentre il file df contiene il messaggio vero e prorio.

Per pulire la coda cercando nell’ header  in base ad una ricerca precisa:

cd /var/spool/mqueue
mkdir /var/tmp/CESTINO
grep quellochevogliocercare qf* | cut -d”:” -f1 | uniq | cut -d”f” -f2 |  xargs -i echo “mv *{} /var/tmp/CESTINO” > LANCIAMI
chmod 700 LANCIAMI
./LANCIAMI
rm -f LANCIAMI

Una cosa molto importante è tenere sincronizzati i file qf*  con file df* , lo script che si occupa di analizzare i file che non hanno il rispettivo corrispondente è questo:

cd /var/spool/mqueue
ls -1 | cut -c 3-16 | sort | uniq -c | sort -n | grep ” 1 ” | awk ‘{print “*”$2}’ >  rimuovi

i messaggi presenti nel file rimuovi dovranno essere eliminati

Per fare una ricerca nei messaggi usare il seguente comando e mantenere sincronizzati i df e qf manualmente tramite lo script precedente.

find . -type f -name ‘q*’ | xargs fgrep -l ‘Deferred:’  | xargs rm -v