适用有大量域名需要查看过期信息的脚本
【摘要】 场景:有大量域名需要查看过期信息需要一个domain.txta.xx.comd.xx.comg.com再同一个目录加check_domain.sh#!/bin/bash########################################################## Action :获取域名的ssl证书过期信息 ## modifi...
场景:有大量域名需要查看过期信息
需要一个domain.txt
a.xx.com
d.xx.com
g.com
再同一个目录加check_domain.sh
#!/bin/bash
#########################################################
# Action :获取域名的ssl证书过期信息 #
# modific :需要维护domain.txt #
#########################################################
################
#获取域名ip
##################
get_and_store_ips(){
output_file="domain2.txt"
# 清空或创建 domain2.txt 文件
> "$output_file"
# 读取 domain.txt 文件的每一行
while IFS=: read -r domain _; do
# 使用 dig 命令查询域名对应的IP地址
ip=$(dig +short "$domain")
# 如果查询到了IP地址,将域名:IP写入 domain2.txt 文件
if [ -n "$ip" ]; then
echo "${domain}:${ip}" >> "$output_file"
fi
done < domain.txt
echo "域名和IP已写入 $output_file 文件"
}
###########
#查域名证书过期时间
#########
get_and_store_ips
for line in $(cat domain2.txt)
do
domain=$(echo ${line} | awk -F':' '{print $1}')
ip_pool=$(echo ${line} | awk -F '[a-z]:' '{print $2}' | sed 's/\,/ /g')
for ip in ${ip_pool}
do
echo -e "\e[33m---------------start to check---------------\e[0m"
echo -e "ip:${ip}\ndomain:${domain}"
text=$(echo | openssl s_client -servername ${domain} -connect ${ip}:443 2>/dev/null | openssl x509 -noout -dates )
# 判断命令是否执行成功,执行成功的话 text 变量里面是有内容的
if [[ ${text} ]]
then
end_date=$(echo "$text" | grep -i "notAfter" | awk -F '=' '{print $2}') # 证书过期时间
end_timestamp=$(date -d "$end_date" +%s) # 转换成时间戳
current_timestamp=$(date +%s) # 当前时间戳
# 如果证书过期时间减去当前时间的天数小于七天的话,则提示需要准备更换证书了
remain_date=$(( (${end_timestamp} - ${current_timestamp}) / 86400 ))
if [[ ${remain_date} -lt 7 && ${remain_date} -ge 0 ]]
then
echo -e "\e[31m剩余时间小于七天!请及时更换证书!\e[0m"
echo -e "\e[31mip: ${ip}, ${domain}\e[0m"
elif [[ ${remain_date} -lt 0 ]]
then
echo -e "\e[31m证书已过期!请及时更换证书!\e[0m"
else
echo -e "\e[32m剩余天数为:${remain_date}\e[0m"
fi
else
echo -e "\e[31mError!${ip}\e[0m"
echo -e "\e[31m${domain}\e[0m"
fi
done
done
然后 sh check_domain.sh 即可。会输出每个域名的过期时间。然后7天内过期的会高亮
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)