shell脚本:通过域名获取证书的过期时间
需要两个文件,一个用于存储域名信息,另一个是检测脚本
注意:这两个文件是在一个目录下
domain_ssl.info 【存储域名信息】
- [root@mini05 ]# cat domain_ssl.info
- # 检测百度域名
- www.baidu.com:
check_domain_time.sh 【检测脚本】
- [root@mini05 ]# cat check_domain_time.sh
- #!/bin/bash
- ################ Version Info ##################
- # Create Date: --
- # Author: Zhang
- # Mail: zhang@xxxx.com
- # Version: 1.0
- # Attention: 通过域名获取证书的过期时间
- ################################################
- # V1.0.0 -- 脚本编写 张
- # .通过域名获取证书的过期时间
- ################################################
- # 加载环境变量
- . /etc/profile
- . ~/.bash_profile
- . /etc/bashrc
- # 脚本所在目录即脚本名称
- script_dir=$( cd "$( dirname "$" )" && pwd )
- script_name=$(basename ${})
- readFile="${script_dir}/domain_ssl.info"
- grep -v '^#' ${readFile} | while read line;do #读取存储了需要监测的域名的文件
- # echo "${line}"
- get_domain=$(echo "${line}" | awk -F ':' '{print $1}')
- get_port=$(echo "${line}" | awk -F ':' '{print $2}')
- # echo ${get_domain}
- # echo "${get_port}"
- # echo "======"
- 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 }' )
- #使用openssl获取域名的证书情况,然后获取其中的到期时间
- END_TIME1=$(date +%s -d "$END_TIME") #将日期转化为时间戳
- NOW_TIME=$(date +%s -d "$(date | awk -F ' +' '{print $2,$3,$6}')") #将目前的日期也转化为时间戳
- RST=$(($(($END_TIME1-$NOW_TIME))/(**))) # 到期时间减去目前时间再转化为天数
- echo "${RST}"
- done
执行结果
- [root@mini05 ]# ./check_domain_time.sh
参考博文:linux学习第七十一篇:shell脚本:通过域名获取证书的过期时间并邮件告警
shell脚本:通过域名获取证书的过期时间的更多相关文章
- Redis 过期键的设置、获取和删除过期时间
Redis 过期键的设置.获取和删除过期时间 转自http://blog.51cto.com/littledevil/1813956 设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内 ...
- Android 获取当前日期距离过期时间的日期差值的完整方法直接使用
/*** * 获取当前日期距离过期时间的日期差值 * @param endTime * @return */public String dateDiff(String endTime) { Strin ...
- shell脚本检查域名证书是否过期
最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...
- linux C程序中获取shell脚本输出(如获取system命令输出)
转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些 ...
- (转)shell脚本使用curl获取访问网站的状态码
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com -I 仅测试HTTP头-m 10 最多查询10s-o /dev/null 屏蔽原 ...
- 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)
###本脚本在Suse11sp2当中验证正确 #!/bin/sh )) do echo -ne "\r$(date)" sleep 0.3 done ###关键在 echo 的 & ...
- mac通过命令行获取证书和配置文件过期时间
背景:ios打包证书的profile配置文件过期了,导致以前已经打完的测试包不能安装.所以需要加上检测机制,在打包时提示证书是否将要过期,如果要过期了给出提示 方案: 1.查找profile配 ...
- Linux中shell脚本自动输入密码
最近遇到蛋疼的事,就是在shell脚本中需要获取root权限,因此在shell脚本运行过程中需要输入密码. 懒惰的我当然想让shell在执行过程中就可以自动输入密码,这样就可以抽空看看妹子图.. 我通 ...
- shell脚本小案例
1.获取远程ftp数据到本地目录 #!/bin/bash ftp -n<<! open 135.0.24.19 user exchange exchange binary cd /idep ...
随机推荐
- Logback中使用TurboFilter实现日志级别等内容的动态修改
可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢?所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别.我们在使用Java开发 ...
- mongodb与spring mvc 整合
1.pom文件添加对mongodb的倚赖 <dependency> <groupId>org.mongodb</groupId> <artifactId> ...
- IP是什么 DNS 域名与IP有什么不同
IP地址是在网络上分配给每台计算机或网络设备的32位数字标识.在Internet上,每台计算机或网络设备的IP地址是全世界唯一的.IP地址的格式是 xxx.xxx.xxx.xxx,其中xxx是 0 到 ...
- 你试过不用if撸代码吗?
译者按: 试着不用if撸代码,是件很有趣的事,而且,万一你领会了什么是“数据即代码,代码即数据”呢? 原文: Coding Tip: Try to Code Without If-statements ...
- 用函数式编程对JavaScript进行断舍离
译者按: 当从业20的JavaScript老司机学会函数式编程时,他扔掉了90%的特性,也不用面向对象了,最后发现了真爱啊!!! 原文: How I rediscovered my love for ...
- idea护眼色设置
idea右侧编辑区设置护眼色
- 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 ...
- Android 常用数据操作封装类案例
1.DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作 package com.example.utils; import android.content.Conte ...
- JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象
创建 function 对象的两种方法: 方式一(推荐) function func1(){ alert(123); return 8 } var ret = func1() alert(ret) 方 ...
- Python 字符串拼接 sql ,造成 sql 注入例子
简单的 userinfo 表 字符串拼接 sql import pymysql # 测试环境的数据库连接 conn = pymysql.connect(host='192.168.0.214', po ...