当前位置:网站首页>Detect certificate expiration script
Detect certificate expiration script
2020-11-06 21:29:00 【Irving the procedural ape】
Premise
It's always a hindsight , It's always a hindsight . The status quo is that whatever problems arise , Can not carry out early warning and intervention before the customer is unknown . In the morning, I had a chance to communicate with the R & D manager , Write this script , Trying to start with early warning .
From production k8s Cluster get realibox.cn Certificate , In the pre launch environment daemon Case study .
daemon Case study
# pwd/yufa/zhengshu/testlltotal 32-rw-r--r-- 1 root wheel 465B 9 9 09:50 test-ingress.yaml-rw-r--r-- 1 root wheel 711B 9 9 09:47 test.yaml-rw-r--r-- 1 root wheel 3.5K 9 9 09:24 tls.crt-rw-r--r-- 1 root wheel 1.6K 9 9 09:25 tls.key# kubectl -n realibox create secret tls realibox-cn --key ./tls.key --cert ./tls.crt# cat test.yamlapiVersion: v1kind: Servicemetadata: name: tomcat namespace: realiboxspec: selector: app: tomcat release: canary ports: - name: http port: 8080 targetPort: 8080 - name: ajp port: 8009 targetPort: 8009---apiVersion: apps/v1kind: Deploymentmetadata: name: tomcat-deploy namespace: realiboxspec: replicas: 1 selector: matchLabels: app: tomcat release: canary template: metadata: labels: app: tomcat release: canary spec: containers: - name: tomcat image: tomcat:7-alpine ports: - name: httpd containerPort: 8080 - name: ajp containerPort: 8009# cat test-ingress.yamlapiVersion: extensions/v1beta1kind: Ingressmetadata: name: ingress-tomcat-tls namespace: realibox annotations: kubernets.io/ingress.class: "kong"spec: tls: - hosts: - "*.realibox.cn" # And secret The domain name of the certificate needs to be consistent secretName: realibox-cn #secret The name of the certificate rules: - host: zisefeizhu.realibox.cn http: paths: - path: backend: serviceName: tomcat servicePort: 8080
Write a script to detect the expiration of domain name
I don't want to talk much about it
# cat check_daemon.sh#!/bin/bashsource /etc/profile# Define mailing lists maillist=( linkun@realibox.com #2350835860@qq.com)# Send mail function send_mail(){ SUBJECT="$1 The domain name is about to expire " if [ $2 -ge 0 ];then CONTENT="$1: This domain name is about to expire , There is not enough time left $2 God , Please renew it in time !" for mail in ${maillist[*]};do echo -e "" Currently detected domain name :" $domain\n " Days left : " $days\n ${CONTENT} " | mail -s "${SUBJECT}" $mail done else day=$((-$2)) CONTENT="$1: This domain name has expired , Exceeded $day God , Please renew in time !" for mail in ${maillist[*]};do echo -e "${CONTENT}" | mail -s "${SUBJECT}" $mail done fi}# testing mails Whether the order exists , If not, install mail package is_install_mail(){ which mail &> /dev/null if [ $? -ne 0 ];then yum install -y mail fi}is_install_mail# Define the list of domain names to be detected domainlist=( zisefeizhu.realibox.cn)# Detect domain expiration time and notify for domain in ${domainlist[*]};do echo " Currently detected domain name :" $domain # Remove domain name expiration time end_time=$(echo | timeout 1 openssl s_client -servername $domain -connect $domain:443 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | awk -F '=' '{print $2}' ) ([ $? -ne 0 ] || [[ $end_time == '' ]]) && exit 10 end_times=`date -d "$end_time" +%s ` tmp=`date -d today +"%Y-%m-%d %T"` current_times=`date -d "$tmp" +"%s"` let left_time=$end_times-$current_times days=`expr $left_time / 86400` echo " Days left : " $days # Convert to timestamp end_times=`date -d "$end_time" +%s ` # Displays the current time in the form of a timestamp tmp=`date -d today +"%Y-%m-%d %T"` current_times=`date -d "$tmp" +"%s"` # The number of days left for domain name expiration let left_time=$end_times-$current_times days=`expr $left_time / 86400` echo " Days left : " $days if .........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- Novice guidance and event management system in game development
- All the way, I was forced to talk about C code debugging skills and remote debugging
- Stickinengine architecture 11 message queue
- 2020-08-30:裸写算法:二叉树两个节点的最近公共祖先。
- 统计项目代码行数
- Qt音视频开发46-视频传输UDP版
- The native API of the future trend of the front end: web components
- A small goal in 2019 to become a blog expert of CSDN
- html+ vue.js Implementing paging compatible IE
- In depth to uncover the bottom layer of garbage collection, this time let you understand her thoroughly
猜你喜欢
An article will take you to understand CSS alignment
2020-09-04:函数调用约定了解么?
Summary of front-end interview questions (C, s, s) that front-end engineers need to understand (2)
2020-08-18:介绍下MR过程?
Multi robot market share solution
Staying up late summarizes the key points of report automation, data visualization and mining, which is different from what you think
Using an example to understand the underlying processing mechanism of JS function
MongoDB与SQL常用语法对应表
Message queue - Analysis
2020-08-20:GO语言中的协程与Python中的协程的区别?
随机推荐
Contract trading system development | construction of smart contract trading platform
2020-08-24:什么是小文件?很多小文件会有什么问题?很多小文件怎么解决?(大数据)
Introduction to the development of small game cloud
2020-08-15:什么情况下数据任务需要优化?
Try to build my mall from scratch (2): use JWT to protect our information security and perfect swagger configuration
Staying up late summarizes the key points of report automation, data visualization and mining, which is different from what you think
ES6 learning notes (3): teach you to use js object-oriented thinking to realize the function of adding, deleting, modifying and checking tab column
【学习】接口测试用例编写和测试关注点
NAND FLASH的接口控制设计
Ronglian completed US $125 million f round financing
代码重构之法——方法重构分析
非易失性MRAM存储器应用于各级高速缓存
预留电池接口,内置充放电电路及电量计,迅为助力轻松搞定手持应用
Behind the record breaking Q2 revenue of Alibaba cloud, the cloud opening mode is reshaping
2020-08-30:裸写算法:二叉树两个节点的最近公共祖先。
[byte jumps, autumn recruitment Posts open] ohayoo! Don't leave after school, I want to ask you to play games!!!
Zero basis to build a web search engine of its own
Pn8162 20W PD fast charging chip, PD fast charging charger scheme
window系统 本机查找端口号占用方法
An article taught you to use HTML5 SVG tags