サーバーが再起動したら、私にメールを送信したいと思います。 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