为什么需要写此脚本
由于线上有一批证书快要到期了就不行每次去网站上一个个打开盯着浪费时间股编写此脚本
在任意一台服务器编写次脚本
脚本一定要做linux编写才起生效
#!/bin/bash
##############################################################
# File Name: check_ssl.sh
# Version: V1.0
# Author: guoxiangfu
# EMail: guoxiangfu@dyrs.com.cn
# Created Time : 2022-03-11 09:54:39
# Description:
##############################################################
# 检测https证书有效期
if [ $# -ne 1 ]; then
echo "请输入需要的检查域名: 例如 /check_ssl.sh www.92fuge.com"
else
#参数设置为host
host=
#最后到期时间
#end_date=`echo |openssl s_client -servername $host -connet $host:443 2nssl x509 -noout -dates|awk -F '=' '/notAfter/{print }'`
#最后到期时间转换为时间戳
end_data=`date +%s -d "$(echo |openssl s_client -servername $host -connect $host:443 2>/dev/null | openssl x509 -noout -dates|awk -F '=' '/notAfter/{print }')"`
#当前时间戳
new_date=$(date +%s)
#计算SSL证书截止到现在的过期天数
#计算SSL正式到期时间和当前时间的差值
days=$(expr $(expr $end_data - $new_date) / 86400)
echo -e "3[31m 您的$host 证书 还有${days}天到期 请谨慎处理 3[0m"
fi
在终端执行一下查看结果
![图片[1]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/c3076-ecc68-a6840-5c8c1-95619-57020-20220311040114image235.png)
批量检测域名
mkdir -p /web_www/jiaoben/sh/
cat > /web_www/jiaoben/sh/ssl.conf << EOF
www.92fuge.com
www.baidu.com
www.aliyun.com
www.qq.com
EOF
这里使用for循环
for i in `cat ssl.conf`; do ./check_ssl.sh $i; done
![图片[2]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/b71fa-3559b-e2917-3f7ee-1da93-53490-20220311050721image877.png)
调用钉钉机器人发消息
- 在群里开启钉钉机器人
- 参考: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
- 我这里已经开启过了 脚本调用
- 群设置->只能群助手->机器人->Webhook:
![图片[3]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/5c4f4-5b5af-9608c-ca40c-85397-2c492-20220311051114image876.png)
![图片[4]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/72d2c-b4572-76aa6-541b0-5294d-1d8f2-20220311051201image790.png)
![图片[5]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/89283-3988e-3234f-2c35f-c9c15-e09a0-20220311051228image520.png)
![图片[6]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/71997-96bd7-a480d-9748d-b6809-af407-20220311051650image648.png)
![图片[7]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/a3e32-e7555-22a72-9ed0b-e88db-92648-20220311051739image749.png)
脚本调用 webhook
由于脚本里面填写的小于二十天以内才触发飞书告警(所有我这里修改为80天验证效果)
![图片[8]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/f1e37-6d33f-a7e5d-a5078-368ca-ecee9-20220311052438image421.png)
token 请填写自己生成的
脚本是否成功
![图片[9]-监控证书SSL到期天数并调用钉钉发送消息-我的运维技术站](https://cdn.92fuge.com/92fuge.com//2024/05/3d7a4-e7cba-933fa-5b026-4d19e-74ad1-20220311053316image736.png)
计划任务的编写
1、编写简单的脚本
#!/bin/bash
##############################################################
# File Name: crontab.ssl.sh
# Version: V1.0
# Author: guoxiangfu
# EMail: guoxiangfu@dyrs.com.cn
# Created Time : 2022-03-11 11:07:10
# Description:
##############################################################
for i in `cat /web_www/jiaoben/sh/ssl.conf`; do /web_www/jiaoben/sh/check_ssl.sh $i; done
2、编写定时任务每天上午九点触发一次脚本(添加完成后记得重新加载计划任务)
echo "0 2 * * * /bin/sh /web_www/jiaoben/sh/crontab.ssl.sh 2>&1 " >> /var/spool/cron/root
感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
暂无评论内容