在服务器数量增多的情况下,在邮箱管理和查看巡检报告变得麻烦。为了解决这一问题,我们可以利用Python脚本来整合多台服务器的巡检报告,并将结果保存到本地文件中,以便更方便地查看和分析。
1.发送邮件
先配置两台服务器进行巡检报告的发送。为了便于管理,我们统一设置邮件标题为服务器名+巡检结果+日期的格式。这样一来,我们可以通过标题搜索来快速定位和识别不同服务器的巡检报告。脚本执行后邮箱已收到服务器各自的巡检结果
2.利用python登录邮箱
使用Python脚本连接到邮箱的IMAP服务器
import imaplib
import email
from datetime import datetime
# 配置邮箱信息
email_address = '收件人@qq.com'
email_password = '收件人邮箱授权码'
imap_server = 'imap.qq.com'
# 连接到IMAP服务器
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(email_address, email_password)
# (可选,需要导入 sys 模块才能使用 sys.exit())检查登录状态
if status != 'OK':
print(f"登录失败: {response[0].decode()}")
sys.exit() # 直接退出程序
else:
print("登录成功")
3.搜索标题并获取内容
# 获取当前日期
current_date = datetime.now().strftime('%Y%m%d')
# 选择收件箱
mail.select('inbox')
# 构建搜索条件
search_criteria = f'(SUBJECT "巡检结果{current_date}")'
# 打印搜索条件
print(f"搜索条件: {search_criteria}")
#将搜索条件编码为 UTF-8 格式,imaplib默认使用ASCII编码来处理字符,中文会报错
search_criteria = search_criteria.encode('utf-8')
# 执行搜索操作,返回状态和匹配的邮件ID列表
status, messages = mail.search(None, search_criteria)
# (可选)检查搜索操作的状态
if status != 'OK':
print(f"搜索失败: {response[0].decode()}")
sys.exit() # 直接退出程序
else:
print("搜索成功")
# 从 messages 中提取匹配的邮件ID列表
# messages[0] 是一个字节字符串,包含所有匹配的邮件ID,用空格分隔
mail_ids = messages[0].split()
# 用于存储巡检报告内容
inspection_reports = []
# 遍历匹配的邮件ID
for mail_id in mail_ids:
# 获取邮件内容
status, msg_data = mail.fetch(mail_id, '(RFC822)')
# 遍历邮件内容
for response_part in msg_data:
# 检查 response_part 是否为元组
if isinstance(response_part, tuple):
# 解析邮件内容
msg = email.message_from_bytes(response_part[1])
# 获取邮件正文
body = msg.get_payload(decode=True).decode()
inspection_reports.append(body)
4.整合巡检报告并保存到本地
# 整合巡检报告
combined_report = "nn".join(inspection_reports)
# 保存整合后的报告到本地
output_filename = f'服务器整体巡检报告{current_date}.txt'
with open(output_filename, 'w', encoding='utf-8') as f:
f.write(combined_report)
print(f"整合后的报告已保存为 {output_filename}")
# 关闭连接
mail.logout()
执行完脚本如下所示:
查看整合报告我们可以看到两台服务器巡检结果已整合到一块,通过整合报告,我们可以一目了然地查看多台服务器的巡检结果,方便进行综合分析和管理。
除了利用Python脚本从邮箱中提取并整合多台服务器的巡检报告外,还有另一种方式可以实现相同的效果。通过SSH秘钥免密登录来提取对应巡检内容并统一整合到一份文件,然后将整合内容发送至邮箱。这种方法同样能够提升管理效率,为监控多台服务器提供了另一种便捷的方式。
原文始发于微信公众号(网络个人修炼):从邮箱中提取并整合多台服务器巡检报告
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论