|
Busca |
Atenção: ESTE GUIA DIZ RESPEITO APENAS A OVH RELEASE 1 e OVH RELEASE 2! A não aplicar sobre um servidor plesk! Nota que este procedimento limpa totalmente a queue email. As mensagens existentes podem ser perdidas. Emails bloqueados, alguns serviços não voltam a arrancar (como Apache). Partição sistema cheia (ver guia SlashFull). A queue de emails está muito cheia, qmail já não consegue consegue tratar a queue. Gerou mal /etc/tcp.smtp e o seu servidor foi utilizado para o spam. O seu disco está cheio. Existe muitos emails dentro da spool e só tem um unica solução: voltar refazer a queue. Atenção: Esta intervenção é delicada e pode fazer com que o servidor de emails deixa de funcionar. Em 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 É então preciso apagar o directório e voltar a cria-lo desde o início. Paramos qmail primeiro: # /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 Para refazer a queue, podemos utilizar: ftp://ftp.netmeridian.com/queue-fix.tar.gz ou http://pyropus.ca/software/queue-repair/queue-repair-0.9.0.tar.gz Pegamos por exemplo qmail-repair. Começamos por recuperar e descomprimir o programa: [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 Antes de qualquer coisa, testamos a manipulação dentro do directório corrente (para recriar uma queue de e-mails sem perigo): [root@julien queue-repair-0.9.0]# ./queue_repair.py -c -s 23 --no-bigtodo . Se tudo correr bem, pode verificar que a queue foi bem recriada: [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 Podemos agora passar ás coisas sérias, ou seja recriar a queue de emails que vai ser realmente utilizada pelo servidor de e-mails e depois verificar que tudo está bem: [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/ Só falta agora voltar a correr qmail (não esquecer de passar em / para voltar a correr 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 Aparentemente tudo voltou ao normal.
Este servidor está saturado, a queue de email faz 928M e parece saturada. Paramos então os serviços:
Antes de qualquer acção, é preciso verificar que o multilog não está mais a correr. No momento em que o comando seguinte não envia mais linhas contendo '/usr/local/bin/multilog' pode prosseguir. 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 ~ # Para medir a segurança, vamos copiar a queue de mail em vez de a eliminar. Uma recuperação poderá assim ser possível depois.
O servidor recuperou recursos, é tempo de reparar a 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 Falta-nos então voltar a lançar os serviços na ordem:
Pode voltar a realizar um teste de envio de e-mail, este deverá apresentar este tipo de informações nos seus 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 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||