Para liberar a fila do postfix:
postsuper -d ALL
para o sendmail:
sendmail -q
Eu tenho um servidor dedicado com o CentOS + MySQL instalado em godaddy.com. Recentemente eu tive alguns problemas muito estranhos: eu instalei uma aplicação PHP que tem um thread que consulta um banco de dados MySQL para endereços de e-mail e depois manda e-mails via comando sendmail. Mais tarde eu parei esse segmento, excluí o arquivo de origem do programa e também reiniciei meu servidor.
No entanto, meu servidor ainda envia muitos e-mails e funciona como um servidor de e-mail de spam agora. Eu também vi erros do MySQL que dizem algo como "muitas conexões" algumas vezes ao tentar abrir meu site. Minha percepção é que algo está consumindo as conexões do MySQL lentamente, mas nunca se desconecta, então, eventualmente, todas as conexões estão ocupadas e meu website pára de funcionar.
Veja o que eu fiz:
Eu verifiquei minhas tarefas do cron no servidor, mas não encontrei nada relacionado a esse problema
Eu verifiquei / var / log / maillog e encontrei o seguinte fragmento típico:
Mar 30 18:25:57 ip-<my-server-ip> master[2501]: process 8739 exited, status 0
Mar 30 18:34:40 ip-<my-server-ip> postfix/pickup[7556]: D44BCF280BE: uid=48 from=<apache>
Mar 30 18:34:40 ip-<my-server-ip> postfix/cleanup[9426]: D44BCF280BE: message-id=<20110330223440.D44BCF280BE@ip-<my-server-ip>.ip.secureserver.net>
Mar 30 18:34:40 ip-<my-server-ip> postfix/qmgr[29799]: D44BCF280BE: from=<apache@ip-<my-server-ip>.ip.secureserver.net>, size=1661, nrcpt=1 (queue active)
Mar 30 18:34:40 ip-<my-server-ip> postfix/pickup[7556]: EC91FF280C3: uid=48 from=<apache>
Mar 30 18:34:40 ip-<my-server-ip> postfix/cleanup[9426]: EC91FF280C3: message-id=<20110330223440.EC91FF280C3@ip-<my-server-ip>.ip.secureserver.net>
Mar 30 18:34:40 ip-<my-server-ip> postfix/qmgr[29799]: EC91FF280C3: from=<apache@ip-<my-server-ip>.ip.secureserver.net>, size=1928, nrcpt=1 (queue active)
Mar 30 18:34:41 ip-<my-server-ip> postfix/smtp[9428]: D44BCF280BE: to=<[email protected]>, relay=p3smtpout.secureserver.net[208.109.80.54]:25, delay=0.34, delays=0.04/0.01/0.15/0.13, dsn=2.0.0, status=sent (250 Accepted message qp 12288 bytes 1821)
Mar 30 18:34:41 ip-<my-server-ip> postfix/qmgr[29799]: D44BCF280BE: removed
Mar 30 18:34:41 ip-<my-server-ip> postfix/smtp[9431]: EC91FF280C3: to=<[email protected]>, relay=p3smtpout.secureserver.net[208.109.80.54]:25, delay=0.32, delays=0.01/0.01/0.08/0.22, dsn=2.0.0, status=sent (250 Accepted message qp 7308 bytes 2085)
Mar 30 18:34:41 ip-<my-server-ip> postfix/qmgr[29799]: EC91FF280C3: removed
Parei o serviço postfix. então há muitos arquivos gerados em /var/spool/postfix/maildrop
assim:
1BCBEF280BE apache postdrop rwxr–r– 2 KB 8:01 PM
Eu verifiquei o arquivo maillog novamente e o fragmento de log descrito em # 2 desapareceu. No entanto, ainda recebe os mesmos emails todos os dias!
Eu também notei que o timestamp em maillong mostra que os e-mails foram enviados durante todo o dia, mas sempre recebe e-mails às 17h.
Parece que o programa PhH que eu deletei ainda está em execução, e algo está enviando e-mails diariamente, embora o postfix tenha sido interrompido.
Agora, estou suspeitando de uma das seguintes possibilidades:
alguns arquivos em cache no meu aplicativo PHP não foram excluídos com sucesso e eles ainda executam o trabalho antigo de > sendmail e o sendmail não foi tratado pelo postfix
Parece que os apaches pegaram os pedidos do sendmail de algum lugar e depois os encaminharam para o postfix. mas onde é que "algum lugar"?
Eu fiquei totalmente confuso. não sei o que fazer, mas veja meu servidor continuar enviando e-mails estúpidos.
Por favor, derramar alguma luz sobre mim. Todas as sugestões / ideias são muito apreciadas!
=== update === Eu não sei porque eu ainda não posso comentar sobre as respostas às minhas perguntas ... aqui está alguma atualização:
Eu limpei a fila de mensagens como sugerido pelas respostas. mailq retornou vazio, mas meu servidor ainda enviou e-mails!
também tenho que manter o serviço de correspondência em execução. A parte restante da aplicação PHP ainda precisa dela.
Quaisquer outras direções que eu deveria tentar?
Para liberar a fila do postfix:
postsuper -d ALL
para o sendmail:
sendmail -q
Parece que o email foi enfileirado no spool do sendmail. Não tem nada a ver com o script PHP que originalmente enviou os emails.
i.e. Quando você executou o script, ele teria enviado todos os emails para o Sendmail. Esses e-mails teriam sido enfileirados no spool de correio. O spooler de emails está tentando limpar a fila. É por isso que os e-mails estão sendo enviados mesmo depois de uma reinicialização.
Você deve tentar excluir o spool de correio para limpar a fila
Desculpe, mas não tenho certeza qual é o melhor método para fazer isso.
Talvez isso ajude: link
Alguém mais sabe como?
Boa sorte!