在Linux里用shell命令发送邮件通知,可以及时知道系统或应用的健康状况;邮箱最好开启了短信通知或者微信邮件提醒功能,我来为大家科普一下关于centos8文档?以下内容希望对你有帮助!

centos8文档(使用shell命令发送邮件通知)

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

,