如何自动生成计算机统计数据并通过电子邮件发送

每天检查服务器上的各种日志数据和统计数据很重要,但这会变得单调乏味。如果每天都能收到一封包含所有亮点的电子邮件,这样你甚至不需要进入服务器来检查问题,那不是很好吗?本指南将向你展示如何在Linux和Windows上配置自动电子邮件。

我们将专门为Ubuntu和Windows 8.1介绍这一点,Gmail将用作发送邮件的电子邮件服务器。“如果您有其他版本的Linux或Windows,或者更喜欢使用其他电子邮件服务,这里的说明应该很容易修改。

Linux中的自动电子邮件

我们将使用两个不同的软件包ssmtp和mailutils来完成此任务,因此请使用以下命令安装这两个软件包:

安装后,我们需要对SSMTP配置文件进行一些更改:

使用这些更改编辑文件(如果您愿意,只需擦除文件中的所有文本并复制/粘贴这些设置是安全的):

编辑完文件后,您需要更改权限,因为您的Gmail密码是以明文形式存储的。

让root成为文件的所有者总是更安全,但是这样我们就必须在脚本中使用sudo命令,它会提示我们输入密码,从而违背了自动化整个过程的目的。

如果您使用的是共享服务器,并且担心您的密码以明文形式存储,并且root用户可以读取,那么可以创建一个一次性的gmail帐户,或者首先使用不需要任何类型身份验证的电子邮件服务器。

为确保一切配置正确,让我们尝试一封测试电子邮件:

“测试”将在电子邮件的正文中,主题将是“测试邮件设置”。请检查您的电子邮件以确保您收到了它。

为电子邮件编写脚本

现在我们可以从命令行发送电子邮件了,现在让我们编写一个脚本,该脚本将向我们发送有关系统的一些基本信息。

显然,您可以对脚本进行更深入的处理,甚至可以将格式做得更好一些,但以下是我们的电子邮件中的输出:

现在脚本已经编写和测试完毕,我们可以使用cron自动在每天的同一时间执行它。在本例中,我们将电子邮件配置为每天凌晨2点发送,这样我们就可以在当天晚些时候查看数据。

对于凌晨2:00的电子邮件,请添加:

如果您需要关于这一部分的更多帮助,我们已经写了一整篇关于crontab文件的文章。

Windows中的自动电子邮件

通过PowerShell在命令行发送电子邮件是可能的,但我们发现使用第三方应用程序实现此功能要容易得多,尤其是使用Gmail时。SendEmail是一款适用于Windows的免费程序,可以轻松集成Windows Task Scheduler和Gmail。/单击上面的链接下载最新版本,并确保获取支持TLS的版本。

下载SendEmail后,解压zip文件并将其内容放在某个位置,只要您计划自动发送电子邮件,就可以将其存储到该位置。在本例中,我们将程序存储在C:\SendEmail中

让我们测试一下SendEmail以快速了解它的工作方式。*通过在“开始”或“运行”(Ctrl+R)菜单中键入cmd打开命令提示符。

在命令提示符打开的情况下,使用change directory命令导航到存储SendEmail文件的位置。

现在,我们可以尝试使用以下命令发送测试电子邮件:

显然,在执行该命令之前,请将“用户名”和“密码”替换为您的帐户凭据。

下面是上面的命令实际执行的操作:

sendEmail执行该程序。

-f-发件人地址

-t-to地址

-s-SMTP服务器

-xu-帐户用户名

-XP-帐户密码

-u-电子邮件主题

-m-电子邮件正文文本

检查您的收件箱以确保您收到了测试电子邮件,然后我们可以继续编写将向我们发送服务器信息的脚本。

为电子邮件编写脚本

为了最大限度地利用我们的脚本,我们将为PowerShell编写该脚本。/通过在运行提示符(Ctrl+R)中键入powershell_ise.exe来打开Windows PowerShell ISE。

在PowerShell ISE窗口的右侧,您可以列出PowerShell能够执行的每个命令。*这应该会让您很好地开始生成需要报告的信息类型。*在脚本中,您还可以调用第三方程序输出信息(例如,SendEmail是第三方应用程序,但PowerShell和cmd可以使用它来完成它们通常无法完成的任务)。

对于我们的示例脚本,我们将检查C盘的当前磁盘使用情况,显示当前正在运行的进程,并显示当前通过网络共享的所有文件。

在此脚本中,各种信息输出到C:\SendEmail\info.txt,然后该文档中的文本在被删除之前通过电子邮件发送给我们。*使用PS1文件扩展名保存脚本(PowerShell文件)。

脚本完成后,从运行提示符运行一次快速测试,以确保其工作正常。

只需使用带有-file参数的powershell命令并指定脚本的路径即可。

检查您的收件箱以确保您收到了电子邮件-如果没有,请检查您的脚本是否有语法错误。以下是从我们的示例脚本生成的电子邮件的外观:

您可以调整格式(如回显文本之间的空行),使其在您的设备上显示得更好,或者更好的是,您可以使用第三方程序,该程序将以比Windows更易读的格式输出所需的信息(脚本编写过程仍然是一样的)。

一旦您解决了脚本中的问题,您就可以使用Windows任务计划程序将其自动化。请通过开始菜单打开Windows任务计划程序。

打开任务调度器后,选择操作>创建基本任务。

将此任务命名为类似于“每日电子邮件脚本”的名称,然后单击“下一步”。在下一个屏幕上,选择您希望电子邮件脚本运行的频率(可能是每天)。然后,选择您希望脚本运行的时间,然后单击“下一步”。

现在您应该在向导的“Action”部分,选择“Start a Program”并输入与我们先前在Run提示符中输入的文本相同的文本,以测试我们的脚本。

在此窗口中单击下一步,然后单击是:

单击最后一个菜单上的“完成”,您就完成了自动电子邮件的计划。

相关文章