Archivio

Posts Tagged ‘pulire coda’

Sendmail – Gestire la coda

4 ottobre 2009 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

Pulire e fixare la coda di qmail

8 settembre 2009 Nessun commento

Logo qmail

La pulizia della coda di un server smtp è un operazione fondamentale per ogni amministratore di sistema.

Può capitare infatti che la coda del server sia piena di messaggio di spam o che per un qualsiasi motivo vadano cancellati.

Vediamo come analizzare e ripulire la coda dell’ MTA Qmail

Per analizzare la coda abbiamo a disposizione il comando:

qmail-qstat

il cui output ci mostra i messaggi i messaggi in coda e i messaggi non processati, un output di esempio è questo:

messages in queue: 5273
messages in queue but not yet preprocessed: 0

Per visualizzare nel dettaglio i messaggi in coda il comando da richiamare è:

qmail-qread

La coda di esempio che abbiamo riportato  è chiaramente da pulire,  a questo scopo è possibile utilizzare il software qmail-remove disponibile qui

E’ possibile installare qmail-remove compilandolo dai sogenti o installando il pacchetto .deb (se avete debian o derivate)

La compilazione su piattaforme a 64 bit può generare problemi, abbiamo compilato un binario statico che è disponibile qui

Qmail mette a disposizione varie opzioni per la ricerca e la cancellazione dei messaggi, per i dettagli aggiornati consigliamo di consultare il manuale richiamandolo con

qmail-remove -h

Di fondamentale importanza è l’utilizzo dell’ opzione dell’ opzione -r che permette la rimozione dei messaggi, omettendola questi saranno solo stampati a video

Un esempio pratico di comando per spostare una serie di messaggi che contengono una determinata stringa dalla coda in un altra cartella è questo:

qmail-remove -r -p “quello che voglio cercare nel messaggio”  -y /home/miacartelladiback

In alternativa a qmail-remove è possibile utilizzare qmail-handler, applicazione del tutto equivalente a qmail-remove

La coda a volte può risultare danneggiata, per cercare di ripararla ci viene in aiuto un altro tool, qmail-fix

Anche qmail-fix è scaricabile dal sito dello sviluppatore a questo indirizzo, per installarlo

wget http://qmail.jms1.net/scripts/qfixq
chmod 700 qfixq
./qfixq

Lanciando il comando

./qfixq live

si autorizza la il tool a fixare la coda, mentre per svuotarla completamente è possibile usare il comando:

./qfixq live empty