1编辑a1.sh
#!/bin/bash
#作者:皇帝
#1.定义一个数组
name=('500361' '500441' '500701' '501721' '502181' '502361' '502441' '502481' '502501' '502502' '502522' '502523' '502562' '502583' '502601' '502641' '502661')
#2.定义变量长度
len=100
len2=0
#3.定义空变量
pj=""
#4.for循环获取一个长度
for a in ${name[@]}
do
me=`ps -ef |grep $a`
echo $me
string=${#me}
echo "长度是: $string"
#5.判断一个长度是否小于100
if [ $string -lt $len ]
then
echo "$string -lt $len: cmpp 挂了--109 ************************************************************************************************"
#6.定义挂了长度小于100的拼接所有程序
pj="$pj $a"
# echo "${a[@]}" | mail -s "cmppserver挂了" 18911407172@163.com
else
echo "$string -lt $len: cmpp 正常"
fi
done
#8.发送皇帝邮箱
if [ ${#pj} -gt $len2 ]
then
echo "${#pj} -gt $len2 :cmpp 挂了--109 ************************************************************************************************"
echo "$pj" | mail -s "cmppserver挂了" 18911407172@163.com
else
echo "${#pj} -gt $len2: cmpp 正常"
fi
exit
2查看邮件是否安装
[root@CentOS6-1 ~]# rpm -q mailx
mailx-12.4-7.el6.x86_64
3安装
yum -y install mailx
4编辑
vim /etc/mail.rc
set from=18911407172@163.com
set smtp=smtps://smtp.163.com:465
set ssl-verify=ignore
set nss-config-dir=/root/.certs
set smtp-auth-user=18911407172@163.com
set smtp-auth-password=123456 --邮箱密码
set smtp-auth=login
5创建目录
mkdir /root/.certs
6 编译
[root@mimvp-hz ~]# echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt
[root@mimvp-hz ~]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
[root@mimvp-hz ~]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
[root@mimvp-hz ~]# certutil -L -d /root/.certs
7查看授权目录 /root/.certs/ 里的文件
# ll /root/.certs/
total 84
-rw-r--r-- 1 root root 2285 Jul 31 23:17 163.crt
-rw------- 1 root root 65536 Aug 1 15:36 cert8.db
-rw------- 1 root root 16384 Aug 1 15:36 key3.db
-rw-r--r-- 1 root root 2594 Aug 1 13:43 qq.crt
-rw------- 1 root root 16384 Jul 31 23:18 secmod.db
8验证
mail -v -s "subject_title" 18911407172@163.com < /etc/passwd
9提示找不到证书 Error in certificate: Peer's certificate issuer is not recognized.
[root@iZm5egf0dl4pke7gkvf28zZ ~]# pwd
/root
[root@iZm5egf0dl4pke7gkvf28zZ ~]# cd .certs/
[root@iZm5egf0dl4pke7gkvf28zZ .certs]# ll
total 80
-rw-r--r-- 1 root root 2338 Jun 10 18:43 163.crt
-rw------- 1 root root 65536 Jun 11 13:42 cert8.db
-rw------- 1 root root 16384 Jun 11 13:42 key3.db
-rw------- 1 root root 16384 Jun 10 18:43 secmod.db
[root@iZm5egf0dl4pke7gkvf28zZ .certs]#
[root@iZm5egf0dl4pke7gkvf28zZ .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
Notice: Trust flag u is set automatically if the private key is present.
这样就不报错了
[root@iZm5egf0dl4pke7gkvf28zZ .certs] cd
[root@mimvp-hz ~]# chmod +x a1.sh
10创建定时任务每30分钟执行一次
[root@iZm5egf0dl4pke7gkvf28zZ ~]# crontab -e
#服务程序告警每30分钟执行一次
30 * * * * sh /root/a1.sh &>/dev/null 2>&1