需要两个文件,一个用于存储域名信息,另一个是检测脚本

  注意:这两个文件是在一个目录下

domain_ssl.info 【存储域名信息】

  1. [root@mini05 ]# cat domain_ssl.info
  2. # 检测百度域名
  3. www.baidu.com:

check_domain_time.sh 【检测脚本】

  1. [root@mini05 ]# cat check_domain_time.sh
  2. #!/bin/bash
  3. ################ Version Info ##################
  4. # Create Date: --
  5. # Author: Zhang
  6. # Mail: zhang@xxxx.com
  7. # Version: 1.0
  8. # Attention: 通过域名获取证书的过期时间
  9. ################################################
  10. # V1.0.0 -- 脚本编写 张
  11. # .通过域名获取证书的过期时间
  12. ################################################
  13.  
  14. # 加载环境变量
  15. . /etc/profile
  16. . ~/.bash_profile
  17. . /etc/bashrc
  18.  
  19. # 脚本所在目录即脚本名称
  20. script_dir=$( cd "$( dirname "$" )" && pwd )
  21. script_name=$(basename ${})
  22.  
  23. readFile="${script_dir}/domain_ssl.info"
  24. grep -v '^#' ${readFile} | while read line;do #读取存储了需要监测的域名的文件
  25. # echo "${line}"
  26. get_domain=$(echo "${line}" | awk -F ':' '{print $1}')
  27. get_port=$(echo "${line}" | awk -F ':' '{print $2}')
  28.  
  29. # echo ${get_domain}
  30. # echo "${get_port}"
  31. # echo "======"
  32.  
  33. END_TIME=$(echo | openssl s_client -servername ${get_domain} -connect ${get_domain}:${get_port} >/dev/null | openssl x509 -noout -dates |grep 'After'| awk -F '=' '{print $2}'| awk -F ' +' '{print $1,$2,$4 }' )
  34. #使用openssl获取域名的证书情况,然后获取其中的到期时间
  35. END_TIME1=$(date +%s -d "$END_TIME") #将日期转化为时间戳
  36. NOW_TIME=$(date +%s -d "$(date | awk -F ' +' '{print $2,$3,$6}')") #将目前的日期也转化为时间戳
  37.  
  38. RST=$(($(($END_TIME1-$NOW_TIME))/(**))) # 到期时间减去目前时间再转化为天数
  39.  
  40. echo "${RST}"
  41. done

执行结果

  1. [root@mini05 ]# ./check_domain_time.sh

参考博文:linux学习第七十一篇:shell脚本:通过域名获取证书的过期时间并邮件告警

shell脚本:通过域名获取证书的过期时间的更多相关文章

  1. Redis 过期键的设置、获取和删除过期时间

    Redis 过期键的设置.获取和删除过期时间 转自http://blog.51cto.com/littledevil/1813956 设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内 ...

  2. Android 获取当前日期距离过期时间的日期差值的完整方法直接使用

    /*** * 获取当前日期距离过期时间的日期差值 * @param endTime * @return */public String dateDiff(String endTime) { Strin ...

  3. shell脚本检查域名证书是否过期

    最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...

  4. linux C程序中获取shell脚本输出(如获取system命令输出)

    转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些 ...

  5. (转)shell脚本使用curl获取访问网站的状态码

    curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com -I 仅测试HTTP头-m 10 最多查询10s-o /dev/null 屏蔽原 ...

  6. 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)

    ###本脚本在Suse11sp2当中验证正确 #!/bin/sh )) do echo -ne "\r$(date)" sleep 0.3 done ###关键在 echo 的 & ...

  7. mac通过命令行获取证书和配置文件过期时间

      背景:ios打包证书的profile配置文件过期了,导致以前已经打完的测试包不能安装.所以需要加上检测机制,在打包时提示证书是否将要过期,如果要过期了给出提示   方案: 1.查找profile配 ...

  8. Linux中shell脚本自动输入密码

    最近遇到蛋疼的事,就是在shell脚本中需要获取root权限,因此在shell脚本运行过程中需要输入密码. 懒惰的我当然想让shell在执行过程中就可以自动输入密码,这样就可以抽空看看妹子图.. 我通 ...

  9. shell脚本小案例

    1.获取远程ftp数据到本地目录 #!/bin/bash ftp -n<<! open 135.0.24.19 user exchange exchange binary cd /idep ...

随机推荐

  1. Logback中使用TurboFilter实现日志级别等内容的动态修改

    可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢?所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别.我们在使用Java开发 ...

  2. mongodb与spring mvc 整合

    1.pom文件添加对mongodb的倚赖 <dependency> <groupId>org.mongodb</groupId> <artifactId> ...

  3. IP是什么 DNS 域名与IP有什么不同

    IP地址是在网络上分配给每台计算机或网络设备的32位数字标识.在Internet上,每台计算机或网络设备的IP地址是全世界唯一的.IP地址的格式是 xxx.xxx.xxx.xxx,其中xxx是 0 到 ...

  4. 你试过不用if撸代码吗?

    译者按: 试着不用if撸代码,是件很有趣的事,而且,万一你领会了什么是“数据即代码,代码即数据”呢? 原文: Coding Tip: Try to Code Without If-statements ...

  5. 用函数式编程对JavaScript进行断舍离

    译者按: 当从业20的JavaScript老司机学会函数式编程时,他扔掉了90%的特性,也不用面向对象了,最后发现了真爱啊!!! 原文: How I rediscovered my love for ...

  6. idea护眼色设置

    idea右侧编辑区设置护眼色

  7. Js 控制随机数概率

    如: 取 1~10 之间的随机数,那么他们的取值范围是: 整数 区间 概率 1 [0,1) 0.1 2 [1,2) 0.1 3 [2,3) 0.1 4 [3,4) 0.1 5 [4,5) 0.1 6 ...

  8. Android 常用数据操作封装类案例

    1.DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作 package com.example.utils; import android.content.Conte ...

  9. JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象

    创建 function 对象的两种方法: 方式一(推荐) function func1(){ alert(123); return 8 } var ret = func1() alert(ret) 方 ...

  10. Python 字符串拼接 sql ,造成 sql 注入例子

    简单的 userinfo 表 字符串拼接 sql import pymysql # 测试环境的数据库连接 conn = pymysql.connect(host='192.168.0.214', po ...