启动时发送邮件

启动时发送邮件

我想在服务器重新启动时向自己发送邮件。我们使用 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发送电子邮件。
使用自定义 shell 脚本会使其“更干净”。

  • 让 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

相关内容