起動時にメールを送信

起動時にメールを送信

サーバーが再起動したら、私にメールを送信したいと思います。 AWS を使用して再起動すると、内部 10.xxx アドレスが変更されます。このアドレスはPostgresや他の場所で設定する必要があり、これは良い通知になります。

この解決策が見つかりましたが、試みるとメールがインストールされないというエラーが発生します。 Sendmail/postfixがインストールされます。

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

mail-utilsをインストールする必要がありますか、他のソリューションなしでインストールできますか?

答え1

このエラーは、単にメールパッケージがインストールされていないか、メールスクリプトがシステムに存在しないことを意味します。

この問題を解決するには、ディストリビューションに従ってインストールまたはmailxパッケージ化します。mailutils

CentOS質問にタグを付けたので、パッケージをインストールする必要がありますmailx

$ sudo yum install mailx

Mailxは、POSIX mailxコマンドとその派生物であるSysV mailとBerkeley Mailの機能を提供する拡張メールコマンドです。ただし、Mailutils はメールの配信と読み取りに便利なメールライブラリ、デーモン、クライアント、サーバーのセットを提供します。

Mailx は RHEL、CentOS、Scientific Linux、またはそのバリアントで使用できます。ただし、Mailutils はメールの配信と読み取りに便利なメールライブラリ、デーモン、クライアント、サーバーのセットを提供します。 Mailutils は Debian、Ubuntu、またはそのバリアントで使用できます。

確認するこのリンクそれに関する追加情報。

答え2

Debian/Ubuntu からメールを送信するには、bsd-mailx パッケージをインストールする必要があります。

上記のコマンドはどこに追加されましたか?電子メールが送信されない理由は3つあります。

  • コマンドはまったく実行されません(実行するには/etc/rc.localに追加してください)。
  • bsd-mailxパッケージがインストールされていません
  • bsd-mailx設定を壊したいくつかのMTAをインストールしようとしました。

答え3

sendmail を使用して直接メールを送信できます。
カスタムシェルスクリプトを使用すると、「よりきれいになります」。

  • crontabがカスタムスクリプトを実行できるようにする

    @reboot .../reboot-notify

  • スクリプトで sendmail を直接使用するようにしてください。

簡単なスクリプト(たとえば、IPアドレスが変更されたことを確認することができます)

#!/bin/sh
HOSTNAME=`hostname`    

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

Server has restarted: $HOSTNAME
END

関連情報