【野驴学BPI】让芭娜娜自动发送系统状态邮件至你的邮箱

本文同步更新于【野驴实验室】详情请点击

使用BananaPi M1Plus( 以下简称M1P) 已经有一段时间了,非常稳定,时刻保持这7*24的服务状态,不过为了能相对方便的了解M1P的实时状态,让M1P自己发送系统 邮件给我,报告状态,那就很好了。

来吧,我们开始弄吧
首先登录M1Papt-get install mutt msmtp
我是采取命令行的方式发送邮件的。先来安装两个邮件服务
配置msmtprc相关内容
我使用的是root帐号,直接新建文件
vi .msmtprc
这个文件是需要自己建立的,新建完成后直接在里面输入下面内容
account defaulthost smtp.163.com 邮件SMTP服务器auth login user wanghao19950516 使用的用户名from [email protected] 使用的邮件地址 password ******** 密码这个地方要填写163邮箱的授权码
保存,这里需要注意个问题 user和from中填写的内容, 不能随便乱写,和后面发邮件的时候用到的内容一致。
配置mutt的内容,打开MUTT配置文件vi /etc/Muttrc
在结尾添加如下内容
set sendmail="/usr/bin/msmtp"set use_from=yesset [email protected] envelope_from=yes
保存, 关闭。
要测试一下SMTP服务器
测试配置文件:
msmtp -P
测试smtp服务器:
msmtp -S
root@bananapi:~# msmtp -P
ignoring system configuration file /etc/msmtprc: No such file or directory
loaded user configuration file /root/.msmtprc
falling back to default account
using account default from /root/.msmtprc
host = smtp.163.com
port = 25
timeout = off
protocol = smtp
domain = localhost
auth = LOGIN
user = snowtank
password = *
passwordeval = (not set)
ntlmdomain = (not set)
tls = off
tls_starttls = on
tls_trust_file = (not set)
tls_crl_file = (not set)
tls_fingerprint = (not set)
tls_key_file = (not set)
tls_cert_file = (not set)
tls_certcheck = on
tls_force_sslv3 = off
tls_min_dh_prime_bits = (not set)
tls_priorities = (not set)
auto_from = off
maildomain = (not set)
from = [email protected]
dsn_notify = (not set)
dsn_return = (not set)
keepbcc = off
logfile = (not set)
syslog = (not set)
aliases = (not set)
reading recipients from the command line
root@bananapi:~# msmtp -S
SMTP server at smtp.126.com (m15-111.126.com [220.181.15.111]), port 25:
163.com Anti-spam GT for Coremail System (126com[20140526])
Capabilities:
PIPELINING: Support for command grouping for faster transmissionSTARTTLS: Support for TLS encryption via the STARTTLS commandAUTH: Supported authentication methods: PLAIN LOGIN
This server might advertise more or other capabilities when TLS is active.
通过上面的测试结果,说明咱们的配置文件没有问题,而且163.com的SMTP服务器支持Plan Login的方式验证。
测试发送邮件
查看原代码
echo “test” |mutt -s “my_email” [email protected]
这样163信箱就有邮件了这个信箱是随便写的,大家自己修改啊!哈哈哈
好了,我们开始让M1自己发邮件给咱们吧!
编辑一个sysinfo.sh 输入如下数据
#! /bin/shttspace=df -h |grep sdb1| awk '{print $4}'server_info=uptimetotal_mem=free -m |grep Mem| awk '{print $2}'use_mem=free -m | grep Mem | awk '{print $3}'free_mem=free -m|grep Mem|awk '{print $4}'wd=cat /sys/devices/platform/sunxi-i2c.0/i2c-0/0-0034/temp1_inputmail_content=“剩余空间:”$ttspace"\n 温度:"$wd"\n 负载:"$server_info"\n 总内存:"$total_mem"M\n 使用内存:"$use_mem"M\n 可用内存:"$free_mem"M"echo $mail_content | mutt -e “my_hdr from:snowtank<[email protected]>” -e “my_hdr content-type:text/html” -s “邮件主题” "收件的地址"
记得保存哦!
注:邮件收到的温度要除以1000才是实际温度,由于我这个是借鉴的大神的,脚本不会改,没办法,等研究明白在改。这个脚本出自大神之手,求指点。
下面我们添加crontabcrontab -e
在最下面添加
0 */2 * * * /home/pi/email/sysinfo.sh
这是2小时发送一次邮件

关于这个时间的设置之前想错了,处理一点小问题之前写的是* */2 * * *,实际测试这样不行,现在这样是没问题的

等着邮件来吧!!搞定咯!谢谢大家观看!
本文引自坦克大神的一篇文章原文地址