用 python 编写简单的证书域名到期报警脚本

将脚本放在服务器的计划任务内,定时检测,证书到期不足60天发送报警邮件及钉钉提醒。

在服务器上需要提前安装好 requests 库。 pip install requests

钉钉机器人

https://open-doc.dingtalk.com/docs/doc.htm?treeId=257&articleId=105735&docType=1

脚本

#!/usr/bin/env python# -*- coding: utf-8 -*-from datetime import datetimefrom email.mime.text import MIMETextfrom email.header import Headerfrom smtplib import SMTPimport requestsimport jsonhost_server = 'mail.abc.com'sender = 'lifangcheng@abc.com'passwd = 'xxxxx'sender_mail = 'lifangcheng@abc.com'receiver = 'group@abc.com'dingding_url = 'https://https://oapi.dingtalk.com/robot/send?access_token=a23dd21319a3d24ff0e1839a17e0d44197abeb58858c1ed9a94484361xxxxxx'headers = {'Content-Type': 'application/json; charset=utf-8'}server_list = [{'host': '*.open.abc.com', 'expire_time': '2020-05-26'}, {'host': '*.abc.com', 'expire_time': '2020-05-26'}, {'host': '*.x.abc.com', 'expire_time': '2020-05-26'}, {'host': 'test.abc.net', 'expire_time': '2020-05-09'}]def echo_remaining_time(server_list): text = '' for server in server_list: now = datetime.now() expire_time = datetime.strptime(server['expire_time'], '%Y-%m-%d') diff = expire_time - now if int(diff.days) < 60: text = text + '证书名称: ' + server['host'] \ + ' ' + '剩余日期:' + str(diff.days) + '天' + '\n' return texttext = echo_remaining_time(server_list)post_data = { 'msgtype': 'text', 'text': { 'content': text }, 'at': { 'isAtAll': True }}r = requests.post(dingding_url, headers=headers, data=json.dumps(post_data))print r.contentdef send_mail(): mail_content = echo_remaining_time(server_list) mail_title = '重要:阿里云证书到期提醒!!!' if mail_content: smtp = SMTP(host_server) # smtp.set_debuglevel(1) smtp.ehlo(host_server) smtp.login(sender, passwd) msg = MIMEText(mail_content, 'plain', 'utf-8') msg['Subject'] = Header(mail_title, 'utf-8') msg['From'] = sender_mail msg['To'] = receiver smtp.sendmail(sender_mail, receiver, msg.as_string())if __name__ == '__main__': send_mail()
(0)

相关推荐

  • 十分钟学会用Flask发邮件

    首先我们用python发邮件前,先要去qq邮箱里去设置一下. 开POP3/SMTP/IMAP功能 http://service.mail.qq.com/cgi-bin/help?subtype=1&a ...

  • 用 Python 写了一个窃取摄像头照片的软件

    meteor_yh Python编程与实战 1周前 来源:http://nxw.so/5nIWK 教你用python做一个属于自己的窃取摄像头照片的软件. 需要安装python3.5以上版本,在官网下 ...

  • 如何用简单的Python编写Web应用程序?

    全文共6260字,预计学习时长13分钟 不了解任何网页框架?没关系,本文将教你如何轻松搞定从数据科学项目到超棒程序的无缝转换. 图片来源:Cody Black Unsplash 稍作休息,开始编码. ...

  • Python生成简单3D管道

    笔者最近研究了一下通过python生成简单3D管道的方法.主要通过空间坐标旋转平移的方法,得到管道起止点的圆截面(正多边形顶点--其法线向量与起止点向量相同),根据顶点构建管道面.并保存为obj文件. ...

  • C语言编写简单实现淘宝购物功能 答辩课题实用

      C语言编写简单实现淘宝购物功能,并能够实现 登陆账号验证 添加购物车 l付密码 错误上限 支付成功 等.. #include <stdio.h> #include <string ...

  • Web前端和Python哪个简单?Python学习!

    Web前端和Python都比较简单,适合零基础的人员学习,但两者之间就业方向不同.前景不同,所以很多人在选择上犯了难,不知道学习Web前端好还是Python好,接下来为大家分析一下. 其实Web前端和 ...

  • Python编写窃取摄像头照片程序

    来源:http://nxw.so/5nIWK  作者: Henrik-Yao 教你用python做一个属于自己的窃取摄像头照片的软件. 需要安装python3.5以上版本,在官网下载即可. 然后安装库 ...

  • Python语言简单介绍及安装

    到目前为止,我已经学习过不少语言了,C.C++.Java甚至C#我也曾看过一两本书,但仍旧没找到一种最适合我的,或者说是我最适合的(哎,太不专一不说,还都只学到皮毛 ). 最近受新老板的影响,要用py ...

  • 使用python编写一个EXE软件(一)

    李斯 李斯学python 5月22日 简介 初学python的同学(例如我自己),会以解决日常问题为目的而编写python脚本,练习python的同时也减少了很多重复劳动. 但是,脚本写完之后,如果需 ...

  • 算法创作 | 用python解决简单的数学运算

    前言朴实无华的基础练习却能为自身的学习奠定无限可能问题描述使用while函数完成:输出1到100之间的偶(奇)数输出1-2+3-4+...+99-100的和用python的math工具结合if:解决一 ...

  • Python|关于简单插入排序的奥秘

    前言 相信大家在生活中经常会遇到排序的问题,比如,如果你是超市工作人员,看到货架上的货品被顾客弄乱了,你一定会重新给货品排序,基本上是按从小到大.从矮到高的顺序摆放.在家里面,你也一定会给家里的物品按 ...