每天检查服务器上的各种日志数据和统计信息是很重要的,但是这会变得很乏味。如果每天收到一封包含所有精彩内容的电子邮件,那么你甚至不需要上服务器检查问题,这不是很好吗?本指南将向您展示如何在Linux和Windows上配置自动电子邮件。
我们将专门为Ubuntu和Windows8.1介绍这一点,Gmail将用作发送邮件的电子邮件服务器。如果您有其他版本的Linux或Windows,或者更喜欢使用其他电子邮件服务,这里的说明应该很容易适应。
我们将使用两个不同的软件包s**tp和mailutils来完成此任务,因此请使用以下命令安装这两个软件包:
$ sudo apt-get install s**tp mailutils
一旦安装了这些,我们需要对SSMTP配置文件进行一些更改:
$ sudo vi /etc/s**tp/s**tp.conf
使用这些更改编辑文件(如果愿意,可以删除文件中的所有文本并复制/粘贴这些设置):
# This address will receive the emails, so enter your own email here if you want to receive them.
# Specify the email server here (leave as is if you’re using Gmail).
mailhub=**tp.gmail.com:587
# The domain name that the mail will come from.
rewriteDomain=gmail.com
# The email address that these emails should be from.
# SSL/TLS settings, required for Gmail and most other mail servers.
UseTLS=Yes
UseSTARTTLS=Yes
# The username and password to your Gmail account.
AuthUser=username
AuthPass=password
# Allow the ability to specify a from address different than the one above.
FromLineOverride=yes
当你编辑完文件后,你会想更改权限,因为你的Gmail密码是明文存储的。
$ sudo chmod 640 /etc/s**tp/s**tp.conf
$ sudo chown username.username /etc/s**tp/s**tp.conf
让root成为文件的所有者总是更安全的,但是我们必须在脚本中使用sudo命令,它会提示我们输入密码,从而使整个过程自动化。
如果您使用的是共享服务器,并且担心您的密码以明文形式存储且可由root读取,请创建一个一次性的Gmail帐户或使用一个不需要任何类型的身份验证的电子邮件服务器。
为了确保所有配置都正确,让我们试试测试电子邮件:
$ echo "Testing" | mail -s "Testing mail setup" [email protected]
“测试”将出现在邮件正文中,主题是“测试邮件设置”。检查您的电子邮件,确保您收到了它。
现在我们可以从命令行发送电子邮件了,让我们编写一个脚本,向我们发送一些有关系统的基本信息。
#!/bin/bash
# Check hard drive space
echo "Hard drive space:" > /home/geek/email.txt
df -h >> /home/geek/email.txt
# List the users that are logged in
echo "Users currently logged in:" >> /home/geek/email.txt
who >> /home/geek/email.txt
# List currently running processes
echo "Running processes:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Send the email
cat /home/geek/email.txt | mail -s "Daily server information" [email protected]
# Delete the file we created
rm /home/geek/email.txt
显然,您可以更深入地了解您的脚本,甚至可以将格式设置得更好一些,但我们的电子邮件中的输出是这样的:
现在脚本已经编写和测试,我们可以使用cron在每天的同一时间自动执行它。在本例中,我们将电子邮件配置为每天凌晨2:00发送,以便我们可以在当天晚些时候查看数据。
$ crontab -e
对于凌晨2:00的电子邮件,请添加:
0 2 * * * /home/geek/script.sh
我们已经写了一整篇关于crontab文件的文章,如果您在这部分需要更多帮助的话。
通过PowerShell可以在命令行发送电子邮件,但我们发现,使用第三方应用程序实现此功能要容易得多,尤其是在使用Gmail时。sendmail是一个免费的Windows程序,可以轻松地与Windows任务调度器和Gmail集成。单击上面的链接以下载最新的副本,并确保获取TLS支持的版本。
一旦你下载了sendmail,提取zip文件并把内容放在某个地方,你可以存储它们,只要你打算自动发送电子邮件。在本例中,我们只将程序存储在C:\sendmail中
让我们测试一下sendmail,快速了解它的工作原理。在“开始”或“运行”(Ctrl+R)菜单中键入cmd,打开命令提示符。
在命令提示符打开的情况下,使用change directory命令导航到存储sendmail文件的位置。
cd C:\SendEmail
现在,我们可以尝试使用以下命令发送测试电子邮件:
sendEmail -f [email protected] -t [email protected] -s **tp.gmail.com:587 -xu username -xp password -u "Test email subject" -m "This is a test email."
显然,在执行命令之前,用您的帐户凭据替换“username”和“password”。
上面的命令实际上是这样做的:
sendEmail执行程序。
-f–发件人地址
-t–收件人地址
-s–SMTP服务器
-xu–帐户用户名
-xp–帐户密码
-u–电子邮件主题
-m–电子邮件正文文本
检查您的收件箱,确保您收到了测试电子邮件,然后我们可以继续编写脚本,向我们发送服务器信息。
为了充分利用我们的脚本,我们将为PowerShell编写它。键入PowerShell打开Windows PowerShell ISE_ise.exe文件进入运行提示(Ctrl+R)。
在PowerShell ISE窗口的右侧,可以列出PowerShell能够执行的每个命令。这将为您生成需要报告的信息类型提供一个良好的开端。在您的脚本中,您还可以调用第三方程序来输出信息(即sendmail是第三方应用程序,但PowerShell和cmd可以使用它来完成通常无法完成的任务)。
对于我们的示例脚本,我们将检查C驱动器的当前磁盘使用情况,显示当前正在运行的进程,并显示当前通过网络共享的所有文件。
# Check hard drive space
echo "C: Drive Usage:" > C:\SendEmail\info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace >> C:\SendEmail\info.txt
# List currently running processes
echo "Running processes:" >> C:\SendEmail\info.txt
get-process >> C:\SendEmail\info.txt
# List the files/folders currently being shared
echo "SMB shares:" >> C:\SendEmail\info.txt
get-**bshare >> C:\SendEmail\info.txt
# Send the email
type C:\SendEmail\info.txt | C:\SendEmail\sendEmail -f [email protected] -t [email protected] -s **tp.gmail.com:587 -xu username -xp password -u "Daily server info"
# Delete the file we made
rm C:\SendEmail\info.txt
在这个脚本中,各种信息被输出到C:\sendmail\信息.txt,然后该文档中的文本在被删除之前通过电子邮件发送给我们。使用ps1文件扩展名(PowerShell文件)保存脚本。
脚本完成后,从运行提示符运行一个快速测试,以确保它正常工作。
只需将powershell命令与-file参数一起使用,并指定脚本的路径。
powershell -file "c:\SendEmail\daily-email.ps1"
检查你的收件箱,确保你收到了电子邮件-如果没有,检查你的脚本语法错误。下面是从我们的示例脚本生成的电子邮件的样子:
您可以随意使用格式(例如在文本之间回送空行),使其在设备上显示得更好,或者更好的是,您可以使用第三方程序,以比Windows更可读的格式输出所需的信息(脚本过程仍然是相同的)。
一旦解决了脚本中的问题,就可以使用Windows任务调度器来实现自动化。通过“开始”菜单打开Windows任务计划程序。
打开任务计划程序后,选择操作>创建基本任务。
将此任务命名为“每日电子邮件脚本”,然后单击“下一步”。在下一个屏幕上,选择您希望电子邮件脚本运行的频率,可能是每天。然后,选择希望脚本运行的时间,然后单击next。
现在,您应该在向导的“操作”部分,选择“启动程序”,并输入与我们之前在Run提示符中输入的文本相同的文本来测试脚本。
在此窗口中单击“下一步”,然后单击“是”:
单击最后一个菜单上的Finish,您就完成了自动电子邮件的计划。
...,它将开始生成新的PGP密钥对,这可能需要几分钟从您的计算机收集足够的熵/随机数据。请随意离开终端几分钟,然后做些别的事情,直到您看到一条消息说您的密钥已成功生成。 ...
... Cend不需要注册。它将自动生成密码和链接,收件人需要启动传输。您需要在传输的整个期间保持浏览器选项卡打开,您的朋友也需要保持打开状态。是的,没有文件大小限制。 ...
...如电子邮件,或者在多人游戏中敌人移动到了哪里?您的计算机如何知道数据应该提供给哪个应用程序?把你最新的邮件发到值班电话上并不是特别有用。 ...
...下面的示例中,我们选择了一个ping请求包。 由于Wireshark自动生成了一个过滤器,因此显示的数据包序列之间没有其他数据包。它显示在过滤器栏中并以绿色突出显示,这表示过滤器的语法是正确的。 要清除过滤器,请单击过...
...件提高了生产效率,有些则增加了更广泛的功能。以下是如何开始。 安装附加组件 要获取加载项,请在Google Sheets中打开一个新的或现有的文件,单击“加载项”,然后单击“获取加载项” 您可以浏览所有加载项的列表,使用...
...网上下载数字产品或torrent时使用过它。 您可以在自己的计算机上设置FTP服务器,但您需要将该计算机打开到internet,以便人们可以访问它来下载文件。你还需要让电脑一直开着,你可能需要检查你的ISP是否对运行服务器有任何...
...选择退出此数据收集,但必须在三个不同的位置进行。 如何选择退出系统信息报告 安装ubuntu18.04并启动后,您将看到“欢迎使用Ubuntu”窗口。点击它,你可以在“帮助改进Ubuntu”屏幕上选择是否向Ubuntu提交关于你电脑的数据。...
...打开它之前不应该同步。但是,请注意,如果您重新启动计算机,并且同步应用程序在启动时启动,如果没有暂停,它将立即再次开始同步。 停止其他程序下载和上载数据 许多程序在后台下载和上传数据。如果你使用电脑游戏...
...Windows10包括一个遥测服务,它可以自动向Microsoft发送有关计算机的诊断和使用数据。自从windows10发布以来,这些设置引起了很多争议,但它们到底做了什么呢? 今天,我们来看看这到底是什么样的数据发送给微软。您可以从“...
...,但它会完全发生在你的电脑上。 自动向谷歌发送使用统计数据和崩溃报告:Chrome发送有关你使用的功能和谷歌发生的崩溃的统计数据。谷歌利用这些数据来修复bug和改进Chrome。如果禁用此选项,Chrome将不会向Google报告此数据...