Você pode usar nc
para testar um servidor de e-mail SMTP da seguinte forma:
$ nc -w 5 mail.mydom.com 25 << EOF
HELO mail.mydom.com
QUIT
EOF
NOTA: As opções -w 5
dizem nc
para esperar no máximo 5 segundos. O servidor a ser monitorado é mail.mydom.com
e 25
é a porta à qual estamos nos conectando.
Você também pode usar esta forma das opções acima se achar que seu servidor está tendo problemas com o HELO
:
$ echo "QUIT" | nc -w 5 mail.mydom.com 25
NOTA: Este formulário funciona bem com o Postfix e o Sendmail!
Exemplo
Aqui estou me conectando ao meu servidor de e-mail.
$ echo "QUIT" | nc -w 5 mail.bubba.net 25
220 bubba.net ESMTP Sendmail 8.14.3/8.14.3; Sat, 19 Apr 2014 16:31:44 -0400
221 2.0.0 bubba.net closing connection
$
Se você verificar o status retornado por esta operação:
$ echo $?
0
No entanto, se nada nas outras extremidades aceitar nossa conexão:
$ echo QUIT | nc -w5 localhost 25
Ncat: Connection refused.
$
Verificando o status retornado disso:
$ echo $?
1
Juntando
Aqui está minha versão de um script chamado mail_chkr.bash
.
#!/bin/bash
echo "Checking Mail Server #1"
echo "QUIT" | nc -w 5 mail.bubba.net 25 > /dev/null 2>&1
if [ $? == 0 ]; then
echo "mail server #1 is UP"
else
echo "mail server #1 is DOWN"
fi
echo "Checking Mail Server #2"
echo "QUIT" | nc -w 5 localhost 25 > /dev/null 2>&1
if [ $? == 0 ]; then
echo "mail server #2 is UP"
else
echo "mail server #2 is DOWN"
fi
Executando:
$ ./mail_chkr.bash
Checking Mail Server #1
mail server #1 is UP
Checking Mail Server #2
Ncat: Connection refused.
mail server #2 is DOWN