读取jiecaoyu.txt文件的中的域名,检测后输出为result.csv

jiecaoyu.txt文件示例

jiecaoyu.cn
blog.jiecaoyu.cn
pan.jiecaoyu.cn

result.csv文件示例

域名剩余到期时间
jiecaoyu.cn56
blog.jiecaoyu.cn113
pan.jiecaoyu.cn245
#!/bin/bash

# 设置超时时间
timeout=5

# 创建csv文件,写入表头
echo "域名,剩余到期时间" > result.csv

# 读取txt文件中的域名
while read domain; do
    # 获取证书到期时间
    expiration_date=$(echo | timeout $timeout openssl s_client -servername $domain -connect $domain:443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
    # 将到期时间转换为时间戳
    expiration_timestamp=$(date -d "$expiration_date" +%s)

    # 获取当前时间戳
    current_timestamp=$(date +%s)

    # 计算证书剩余天数
    days_left=$(( ($expiration_timestamp - $current_timestamp) / 86400 ))

    # 如果无法访问域名或超过超时时间,则跳过该域名并输出提示信息
    if [ -z "$expiration_date" ]; then
        echo "无法访问域名 $domain,跳过检查。"
        # 将结果写入csv文件
        echo "$domain,timeout" >> result.csv
        continue
    fi

    # 将结果写入csv文件
    echo "$domain,$days_left" >> result.csv

# 注意文件编码,Windows创建的txt在Linux执行会全部跳过检查
done < jiecaoyu.txt

# 输出完成信息
echo "检查完成,结果已保存到result.csv文件。"

# 结束脚本
exit 0