在Linux里用shell命令发送邮件通知,可以及时知道系统或应用的健康状况;邮箱最好开启了短信通知或者微信邮件提醒功能,我来为大家科普一下关于centos8文档?以下内容希望对你有帮助!
centos8文档
在Linux里用shell命令发送邮件通知,可以及时知道系统或应用的健康状况;邮箱最好开启了短信通知或者微信邮件提醒功能。
例如监控cup和内存的运行情况,并判断相关值,发送邮件通知;这里可以根据实际情况去实现。
#查看截取空闲cpu占有率命令
free=$(top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d ".")
echo $free
#查看截取内存占有率命令
used=$(df -Ph | grep '/dev/sda1' | awk {'print $5'})
echo $used
一、centos安装mailx
1.centos安装mailx
yum install mailx -y
2.配置mail.rc
#新建文件夹
mkdir -p /var/pki/nssdb
#配置mail.rc
vi /etc/mail.rc
# 在mail.rc最后一行写入下面信息
# 这里填入smtp地址
set smtp=smtp.126.com
# 认证方式
set smtp-auth=login
# 这里输入邮箱账号
set smtp-auth-user=username@126.com
# 这里填入密码,这里是授权码而不是邮箱密码
set smtp-auth-password=XXXXX
# 忽略证书警告
set ssl-verify=ignore
# 证书所在目录
#set nss-config-dir=/var/pki/nssdb
# 设置发信人邮箱和昵称
set from=username@126.com
# STARTTLS时使用
#set smtp-use-starttls=yes
错误:smtp-server: 504 5.7.4 Unrecognized authentication type [TYCPR01CA0037.jpnprd01.prod.outlook.com]
解决方法,就是下载证书:
# 465端口
echo -n "" | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /var/pki/nssdb/126.crt
# 587端口
echo -n | openssl s_client -starttls smtp -connect smtp.office365.com:587 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /var/pki/nssdb/hotmail.crt
将证书添加到受信任列表:
certutil -A -n 'hotmail' -t "P,P,P" -d /var/pki/nssdb -i /var/pki/nssdb/hotmail.crt
certutil -A -n '126.com' -t "P,P,P" -d /var/pki/nssdb -i /var/pki/nssdb/126.crt
列出目录下的数字证书
certutil -L -d /var/pki/nssdb
二、debian安装mailx
1.Debian安装mailx,在Debian 10会自动一起安装exim4(主要是"exim4-base"、"exim4-config"、"exim4-daemon-light"这三个包)
sudo apt-get install mailutils
如果没有一起安装exim4,则手动安装exim4:
sudo apt-get install exim4
安装bsd-mailx
sudo apt-get install bsd-mailx
2.配置mail.rc
(同上)
3.修改配置文件
原来debian的exim4缺省是不支持往internet上发信的,需要编辑配置文件
sudo vi /etc/exim4/update-exim4.conf.conf
#将dc_eximconfig_configtype='local',改成:
dc_eximconfig_configtype='internet'
5.重启exim4
sudo /etc/init.d/exim4 restart
*发送邮件的方式:
echo "测试邮件内容" | mail -s "测试邮件标题" xxx@qq.com
注意:如果需要发送给多个收件人,收件人之间用逗号隔开。
echo "测试邮件内容" | mail -s "测试邮件标题" xxx@qq.com,xxx@163.com