Enviar e-mail na inicialização

1

Eu quero enviar um email para mim mesmo no reinício de um servidor. Usamos o AWS e uma reinicialização resulta em um endereço 10.x.x.x interno alterado. Este endereço tem que ser configurado no Postgres e em outros lugares, e isso seria um bom lembrete.

Eu encontrei esta solução, mas ao tentar eu recebo o erro que o e-mail não está instalado. Sendmail / postfix está instalado.

@reboot  echo "Server has restarted "'hostname' | mail -s "System Restart" [email protected]

Preciso instalar os utilitários de email ou posso fazer sem usar outra solução?

    
por SPRBRN 24.07.2015 / 11:04

3 respostas

1

O erro significa simplesmente que o pacote de correio não está instalado ou o script de correio não está presente no sistema.

Para resolver o problema, instale o pacote mailx ou mailutils , dependendo da sua distro.

Como você marcou CentOS na pergunta, é necessário instalar o pacote mailx .

$ sudo yum install mailx

Mailx é um comando de email aprimorado, que fornece a funcionalidade do comando POSIX mailx, bem como o correio SysV e o Berkeley Mail dos quais é derivado. Visto que o Mailutils fornece um conjunto de bibliotecas de correio úteis, daemons, clientes e servidores para entrega e leitura de correio eletrônico.

Mailx is available for RHEL, CentOS, Scientific Linux or their variants. Whereas, Mailutils provides a set of useful mail libraries, daemons, clients and servers for delivering and reading electronic mail. Mailutils is available in Debian, Ubuntu or their variants.

Verifique se este link para obter mais informações sobre isso .

    
por 24.07.2015 / 12:07
1

No Debian / Ubuntu você precisa do pacote bsd-mailx instalado para enviar e-mails.

Onde você adicionou o comando acima? Existem 3 motivos possíveis pelos quais os e-mails não são enviados:

  • este comando não é executado (adicione-o ao /etc/rc.local para garantir que ele será executado)
  • O pacote bsd-mailx não está instalado
  • você tentou instalar algum MTA que quebrou a configuração do bsd-mailx
por 24.07.2015 / 11:54
1

Você pode usar o sendmail diretamente para enviar o e-mail.
Usar o script de shell personalizado tornaria "mais limpo".

  • fazer crontab executar script personalizado

    @reboot .../reboot-notify

  • faça o script usar o sendmail diretamente

script simples (por exemplo, você pode verificar se o endereço IP foi alterado)

#!/bin/sh
HOSTNAME='hostname'    

/usr/sbin/sendmail -i [email protected] <<END
Subject: System restart

Server has restarted: $HOSTNAME
END
    
por 24.07.2015 / 14:52