表格列展示自动扩展_自动提醒站点证书过期时间,实现IT小应用,SeaTable 表格很好用...

本文介绍了如何使用 SeaTable 结合 Python 脚本,创建一个自动检查并记录多个网站证书过期时间的系统,通过 SeaTable 的提醒规则功能,实现证书即将过期时自动发送提醒。
摘要由CSDN通过智能技术生成

SeaTable 是一款新型的在线协同表格和信息管理系统。它支持“文件”、“图片”、“单选项”、“协作人”、“计算公式”等丰富的数据类型。 我们可以用它来方便的组织和管理各类信息。同时,它也是一个好用的轻型数据库,并自带了非常精美的 UI。

对一些 IT 小应用,如果自行从头写一个工具就要花费不少时间,还不好维护。通过给 SeaTable 写扩展就能在很短的时间内完成,维护起来还方便。

下面我们以监控多个站点的证书过期时间为例,来说明下具体的流程。

我们团队平时管理的站点有二十多个,全部使用的是免费的 Lets' encrypt 证书,并通过脚本在证书过期前自动更新证书。偶尔会出现脚本没有配置对或其他的原因导致证书没有正常更新,尤其是对新部署的站点。这就需要制作一个功能来解决这类的问题。

先来看下这个站点记录表,它记录了站点名称、运维文档、负责人、证书过期时间等信息。如下图:

f9baf08333fd2e85fd2ec346a391d715.png

站点证书过期时间记录表

为了方便查看各站点的证书过期时间,我们在默认视图基础上,增加了一个“按证书到期排序”视图,用排序按钮,为视图设置的条件是:证书过期时间、升序。即可把表格里所有站点的证书过期时间,按照由早到晚的顺序自动排列展示。

如下图:

00e117896c41164b3a4fcc57dce7ad90.png

视图:对证书过期时间升序排序

可以看到,“按证书到期排序”视图能方便我们查看站点的证书过期时间,但是并不能帮助自动化监控。那么怎么自动化呢?我们用以下两步来做到:

  1. 增加后台脚本每日访问这些网站并记录证书过期时间到表格中
  2. 通过 SeaTable 的“提醒规则”功能,实现自动提醒

用脚本检查网站过期时间

通过 SeaTable 界面,我们可以给表格生成一个 API Token。用 API Token 我们就能在程序中操作表格的内容。SeaTable 也提供了 Python 库 (https://github.com/seatable/seatable-api-python)。我们用 Python 写的脚本内容如下:

api_token = xxxseatable = SeaTableAPI(api_token, 'https://cloud.seatable.cn')seatable.auth()# 列出'云端服务'这个表的所有行rows = seatable.list_rows('云端服务')for row in rows:    domain = row['Name']    # 对每个记录,访问对应的网站获取证书的过期时间,如果和当前记录的时间不同,那么更新到表格    expiration = get_cert_expiration(domain)    old_expiration = row['证书过期时间'] if '证书过期时间' in row else ''    if old_expiration != expiration:        row['证书过期时间'] = expiration        seatable.update_row('云端服务', row['_id'], row)

get_cert_expiration 函数内容如下:

import sslimport OpenSSLcert = ssl.get_server_certificate((domain, 443))x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)expiration = datetime.strptime(x509.get_notAfter().decode("utf-8"),"%Y%m%d%H%M%SZ")return str(expiration)

再添加一个 Cron 定时任务来每日调用这个脚本,我们就实现了每日访问这些网站并记录证书过期时间到表格中。

添加提醒规则

下面我们来添加提醒规则。

点击“添加新规则”按钮,添加一个提醒规则。规则设置,如下图:

f1c468859aa080c0d74244bfc6120657.png

SeaTable 提醒规则功能设置界面

在提醒规则设置上:

  • 规则名称:自定义即可。
  • 表格:选择“云端服务”这个记录站点证书过期时间的子表。视图选择默认视图就可以。
  • 检测频率:我们选择每天检测一次。
5770c4e8bfaca9073856f0e564cfa6d5.png

检测频率选项

  • 条件:因为要监控过期时间,所以就选择“记录接近截止日期”这个条件。它就会自动对表格中的“日期”类型列的时间进行监控。
  • 选择一个日期列:在弹出的表格中的日期列选项里,我们选择“证书过期时间”列,并设置一个非负整数14天。14天表示“证书过期时间”列里的每个时间,在还有14天就要过期时,就会自动发出监控通知。
  • 发送通知给:从下拉的共享者里选择想要接收此监控提醒通知的人就可以。
  • 自定义消息:自定义输入即可。

以上,我们通过 SeaTable 的 API 功能,通过写一个简单的 Python 脚本,就满足了我们进行站点证书过期监控的需求。可以看到,对一些 IT 小应用,通过给 SeaTable 写扩展就能在很短的时间内完成,维护起来还方便。


推荐阅读

多人填写,自动汇总,填写人互不可见?用 SeaTable 表格更简单

不用软件也能做好多个项目跟进管理?我用一个协同表格就搞定

不用记账软件也能做好个人支出记账,SeaTable 表格更简单好用

使用 SeaTable 可点击下方“了解更多”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值