|
Recherche |
Attention: CE GUIDE CONCERNE UNIQUEMENT OVH RELEASE 1 ET OVH RELEASE 2 ! Ne pas appliquer sur un serveur plesk ! Gardez en mémoire que cette procédure vide totalement la queue de mail. Les messages qui y sont présent peuvent être perdus Mails bloqués, certains services ne (re)démarrent plus (comme Apache). Partition système pleine (cf. SlashFull). La queue de mails est trop remplie, qmail n'arrive plus à la traîter. Vous avez mal geré /etc/tcp.smtp et votre serveur a été utilisé pour un spam. Votre disque est plein. Il y a plein d'email dans le spool et vous n'avez qu'une solution : refaire la queue Attention ! Cette intervention est délicate et peut amener à ce que le serveur de mails ne fonctionne plus du tout ! Procéder ainsi en SSH : # tail -f /var/log/qmail/current @400000003f883c8c05961f54 alert: unable to append to bounce message; HELP! sleeping... @400000003f883c96062e9a7c alert: unable to append to bounce message; HELP! sleeping... @400000003f883ca006c73cb4 alert: unable to append to bounce message; HELP! sleeping... # /var/qmail/bin/qmail-qstat messages in queue: 12001 messages in queue but not yet preprocessed: 117 # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 2016016 1913988 0 100% / /dev/hda2 36977736 8967660 26131676 26% /home none 257272 0 257272 0% /dev/shm Il faut donc effacer le repertoire et le refaire depuis le début. On arrete qmail avant : # /etc/init.d/qmail stop stopping qmail [OK ] # cd /var/qmail/ # ls -l total 32 drwxr-sr-x 2 alias qmail 4096 jui 16 20:25 alias drwxr-xr-x 2 root qmail 4096 jui 16 20:25 bin drwxr-xr-x 2 root qmail 4096 jui 16 20:25 boot drwxr-xr-x 2 root qmail 4096 oct 11 00:39 control drwxr-xr-x 3 root qmail 4096 jui 16 20:25 doc drwxr-xr-x 10 root qmail 4096 jui 16 20:25 man drwxr-x 11 qmailq qmail 4096 jui 16 20:25 queue drwxr-xr-x 2 root qmail 4096 oct 11 00:39 users # rm -rf queue # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 2016016 834556 1079048 44% / /dev/hda2 36977736 8967664 26131672 26% /home none 257272 0 257272 0% /dev/sh On respire. Pour refaire la queue, on peut utiliser : ftp://ftp.netmeridian.com/queue-fix.tar.gz ou http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz Prenons par exemple qmail-repair. Nous commençons par récupérer et décompresser le soft : [root@julien root]# mkdir /temp [root@julien root]# cd /temp/ [root@julien temp]# wget http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz --17:37:05-- http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz => `queue-repair-0.9.0.tar.gz' Connexion vers pyropus.ca:80...Connecté! requête HTTP transmise, en attente de la réponse...200 OK Longueur: 13,913 [application/x-tar] 0K .......... ... 100% @ 23.47 KB/s 17:37:06 (23.47 KB/s) - `queue-repair-0.9.0.tar.gz' sauvegardé [13913/13913] [root@julien temp]# tar xfz queue-repair-0.9.0.tar.gz [root@julien temp]# cd queue-repair-0.9.0 Avant toute chose, testons la manipulation dans le répertoire courant (pour recréer une queue de mails sans danger) : [root@julien queue-repair-0.9.0]# ./queue_repair.py -c -s 23 --no-bigtodo . Si tout se passe bien, vous pouvez vérifier que la queue a bien été recréée : [root@julien queue-repair-0.9.0]# ls -l queue total 36 drwx------ 2 qmails qmail 4096 mar 25 17:39 bounce drwx------ 25 qmails qmail 4096 mar 25 17:39 info drwx------ 2 qmailq qmail 4096 mar 25 17:39 intd drwx------ 25 qmails qmail 4096 mar 25 17:39 local drwxr-x--- 2 qmailq qmail 4096 mar 25 17:39 lock drwxr-x--- 25 qmailq qmail 4096 mar 25 17:39 mess drwx------ 2 qmailq qmail 4096 mar 25 17:39 pid drwx------ 25 qmails qmail 4096 mar 25 17:39 remote drwxr-x--- 2 qmailq qmail 4096 mar 25 17:39 todo On peut maintenant passer aux choses sérieuses, c'est-à-dire recréer la queue de mails réellement utilisée par le serveur de mails puis vérifier que tout est bien là : [root@julien queue-repair-0.9.0] ./queue_repair.py -c -s 23 --no-bigtodo /var/qmail [root@julien queue-repair-0.9.0]# ls -l /var/qmail/ Il reste maintenant à redémarrer qmail (ne pas oublier de passer en / pour redémarrer qmail) # cd / # /etc/init.d/qmail start Starting: qmail pop smtp # echo test | mail oles@ovh.net # tail -f /var/log/qmail/current @400000003f883ce426b52c0c alert: unable to append to bounce message; HELP! sleeping... @400000003f8840a31f2624dc alert: cannot start: unable to switch to queue directory @400000003f88425517b081ac status: local 0/10 remote 0/20 @400000003f88426f0748a59c new msg 100179 @400000003f88426f074b1e6c info msg 100179: bytes 207 from @400000003f88426f097eb3c4 starting delivery 1: msg 100179 to remote oles@ovh.net @400000003f88426f0980da8c status: local 0/10 remote 1/20 @400000003f88426f1a6fd85c delivery 1: success: 213.186.33.73_accepted_message./Remote_host_said:_250_ok_1065894524_qp_30276/ @400000003f88426f1a7717d4 status: local 0/10 remote 0/20 @400000003f88426f1a7c4fc4 end msg 100179 Visiblement tout est redevenu normal.
Ce serveur est saturé, la queue de mail fait 928M et semble saturée. Nous arrêtons les services :
Avant toute action, il faut vérifier que le multilog n'est plus en action. Lorsque la commande suivante ne vous envoie plus de ligne contenant '/usr/local/bin/multilog' vous pouvez passer à la suite. server ~ # ps aux | grep multi qmaill 5865 0.0 0.0 1344 284 pts/0 S 16:30 0:00 /usr/local/bin/multilog /var/log/qmail/ qmaill 5872 0.0 0.0 1344 284 pts/0 S 16:30 0:00 /usr/local/bin/multilog /var/log/qmailpop3/ qmaill 5876 0.0 0.0 1344 284 pts/0 S 16:30 0:00 /usr/local/bin/multilog /var/log/qmailsmtp/ root 9316 0.0 0.0 1860 716 pts/0 R+ 17:14 0:00 grep --colour=auto multi server ~ # Par mesure de sécurité, nous allons copier la queue de mail plutôt que de la supprimer. Une récupération pourra ainsi être envisagée par la suite.
Le serveur a récupéré des ressources, il est temps de réparer la queue de mail.
server ~ # mkdir /temp server ~ # cd /temp/ server temp # wget http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz server temp # tar -xvzf queue-repair-0.9.0.tar.gz server temp # cd queue-repair-0.9.0 server queue-repair-0.9.0 # ./queue_repair.py -c -s 23 --no-bigtodo /var/qmail server queue-repair-0.9.0 # ls -l /var/qmail/ total 32 drwxr-sr-x 2 alias qmail 4096 jun 2 2006 alias drwxr-xr-x 2 root qmail 4096 nov 14 15:04 bin drwxr-xr-x 2 root qmail 4096 jun 2 2006 boot drwxr-xr-x 2 root qmail 4096 nov 14 15:04 control drwxr-xr-x 3 root qmail 4096 jun 2 2006 doc drwxr-xr-x 10 root qmail 4096 jun 2 2006 man drwxr-x--- 11 qmailq qmail 4096 nov 14 16:26 queue drwxr-xr-x 2 root qmail 4096 nov 14 15:04 users Il nous reste alors à relancer les service dans l'ordre :
Vous pouvez refaire un test d'envoi de mail, celui ci devrait afficher ce type d'informations dans vos logs : server queue-repair-0.9.0 # tail -f /var/log/qmail/current @40000000491d93771c6c4c6c status: exiting @40000000491d998a13d2554c status: local 0/10 remote 0/20 @40000000491d99f434a30384 new msg 69683 @40000000491d99f434a30b54 info msg 69683: bytes 226 from @40000000491d99f435109a34 starting delivery 1: msg 69683 to remote user@domain.tld @40000000491d99f43510a204 status: local 0/10 remote 1/20 @40000000491d99f501c68d3c delivery 1: success: 213.186.33.73_accepted_message./Remote_host_said:_250_ok_1226676713_qp_19643/ @40000000491d99f501c6950c status: local 0/10 remote 0/20 @40000000491d99f501c698f4 end msg 69683 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||