邮件发送配置
#安装邮件服务
yum install -y mailx sendmail
#修改接口
sed -i "s/inet_interfaces = localhost/inet_interfaces = all/g" /etc/postfix/main.cf
#编辑邮件信息
cat >> /etc/mail.rc << "EOF"
#配置文件末端添加
# 这里填入smtp地址
set smtp=smtps://smtp.163.com:465
# 认证方式
set smtp-auth=login
# 这里输入邮箱账号
set smtp-auth-user=18271632505@163.com
# 这里填入密码
set smtp-auth-password=xxxxxxxxx
# 忽略证书警告
set ssl-verify=strict
# 证书所在目录
set nss-config-dir=/etc/pki/nssdb
# 设置发信人邮箱和昵称
set from=18271632505@163.com
# STARTTLS时使用
#set smtp-use-starttls=yes
EOF
#获取邮件服务器证书
echo -n " " | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFIICATE-/p' > /etc/pki/nssdb/163.crt
#把证书添加到受信任列表
certutil -A -n '163' -t "P,P,P" -d /etc/pki/nssdb -i /etc/pki/nssdb/163.crt
服务检测脚本 services_check.sh
#!/bin/bash
#主机名
name=`hostname`
#日期
date=`date '+%Y-%m-%d-%H:%M:%S'`
#外网ip
ip_in=`curl whatismyip.akamai.com`
ip_on=`ip a show |grep ens|grep inet |awk '{print $2}'|awk -F '/' '{print $1}'`
cat /data/testlist | while read service
do
stat=`systemctl status $service |grep Active|awk '{print $3}' |cut -c 2-8`
#判断服务状态
if [ $stat != running ];then
# 邮件发送
echo -e "故障日期:$date \n\t 主机名称:$name \n\t IP地址:$ip_in \n\t 服务状态:$service $stat" | mail -s "服务严重故障" xxx@qq.com
fi
done
/data/testlist 服务列表
[root@bamboocloud ~]# cat /data/testlist
mysql
定时监测crontab
#每半小时检测
*/30 * * * * /data/safety/sys_services/services_check.sh