python实现kubernetes生成Excel报表并且Email
来源:互联网 发布:php urldecode解码 编辑:程序博客网 时间:2024/05/29 14:27
一、首先是一个主脚本串联起两个Python脚本
#!bin/bash
cd /baobiao
kubectl get namespaces > namespaces.txt
kubectl get svc -o wide --all-namespaces > service.txt
kubectl get pods -o wide --all-namespaces > pods.txt
python baobiao.py kube`date +%y%m%d` #生成Excel
python sendmail.py kube`date +%y%m%d`.xls #将Excel发送邮件
二、baobiao.py
#!/bin/env python
# -*- encoding: utf-8 -*-
import datetime
import time
import os
import sys
import xlwt
import xlrd
filename = '/opt/ci123/baobiao/namespaces.txt'
filenamesvc = '/opt/ci123/baobiao/service.txt'
filenamepod = '/opt/ci123/baobiao/pods.txt'
filenameimages = '/opt/ci123/baobiao/images.txt'
def txt2xls(xlsname):
# print 'converting xls ... '
f = open(filename)
x = 0
y = 0
s = open(filenamesvc)
a = 0
b = 0
p = open(filenamepod)
c = 0
d = 0
q = open(filenameimages)
m = 0
n = 0
xls=xlwt.Workbook()
sheet1 = xls.add_sheet('namespaces',cell_overwrite_ok=True)
sheet2 = xls.add_sheet('svc',cell_overwrite_ok=True)
sheet3 = xls.add_sheet('pods',cell_overwrite_ok=True)
sheet4 = xls.add_sheet('images',cell_overwrite_ok=True)
while True:
########################## pods #######################
linepod = p.readline()
if not linepod:
break
for i in linepod.split():
item=i.strip().decode('utf8')
sheet3.write(c,d,item)
d += 1
c += 1
d = 0
########################## services #################
while True:
linesvc = s.readline()
if not linesvc:
break
for i in linesvc.split():
item=i.strip().decode('utf8')
sheet2.write(a,b,item)
b += 1
a += 1
b = 0
######################### namespaces #################
while True:
line = f.readline()
if not line:
break
for i in line.split():
item=i.strip().decode('utf8')
sheet1.write(x,y,item)
y += 1
x += 1
y = 0
######################## images #####################
while True:
line = q.readline()
if not line:
break
for i in line.split():
item=i.strip().decode('utf8')
sheet4.write(m,n,item)
n += 1
m += 1
n = 0
f.close()
s.close()
p.close()
xls.save(xlsname+'.xls')
if __name__ == "__main__":
# filename = sys.argv[1]
xlsname = sys.argv[1]
txt2xls(xlsname)
三、sendmail.py
#!/bin/env python
# -*- coding: utf-8 -*-
import smtplib
import email.MIMEMultipart
import email.MIMEText
import email.MIMEBase
import os.path
import sys
#import datetime
import mimetypes
import email.MIMEImage
def excel(file_name):
From = "发件人"
To = "收件人"
#file_name = ""
# date = datetime.strptime('%Y-%m-%d %A')
server = smtplib.SMTP("邮件服务器")
server.login("grafana@ciurl.cn","")
main_msg = email.MIMEMultipart.MIMEMultipart()
text_msg = email.MIMEText.MIMEText("kubernetes 集群namespaces、services、pods信息报表 ",_charset="utf-8")
main_msg.attach(text_msg)
ctype,encoding = mimetypes.guess_type(file_name)
if ctype is None or encoding is not None:
ctype='application/octet-stream'
maintype,subtype = ctype.split('/',1)
file_msg=email.MIMEImage.MIMEImage(open(file_name,'rb').read(),subtype)
print ctype,encoding
basename = os.path.basename(file_name)
file_msg.add_header('Content-Disposition','attachment', filename = basename)
main_msg.attach(file_msg)
main_msg['From'] = From
main_msg['To'] = To
main_msg['Subject'] = "kubernetes统计报表"
main_msg['Date'] = email.Utils.formatdate( )
fullText = main_msg.as_string( )
try:
server.sendmail(From, To, fullText)
finally:
server.quit()
if __name__ == "__main__":
# filename = sys.argv[1]
file_name = sys.argv[1]
excel(file_name)
- python实现kubernetes生成Excel报表并且Email
- php中使用python生成excel报表
- python+shell 批量获取服务器信息并且生成excel表
- java导出导入excel文件(jxl) ,项目打卡机月报表生成excel后,转换并且输出指定格式的excel
- asp生成excel报表
- asp生成excel报表
- 客户端生成EXCEL报表
- POI生成excel报表
- asp生成excel报表
- PHP生成EXCEL报表
- php生成excel报表
- php生成excel报表
- java生成excel报表
- VS2010生成Excel报表
- python 按固定格式数据生成excel报表源代码
- python生成每日报表数据(Excel)并邮件发送
- 用 LotusScript 实现 Excel 报表的自动生成和操作
- 借助POI实现Java生成并打印报表(Excel)
- asp.net mvc 之旅—— 第三站 路由模板中强大的自定义IRouteConstraint约束
- 极其强大的一些js插件
- Uri详解之——Uri结构与代码提取
- C++程序抛出异常后执行顺序
- viewpager_frament_httpconnection_xlistview+双条目加载
- python实现kubernetes生成Excel报表并且Email
- 约瑟夫问题(Josephus)链表实现
- 心累
- Android之Notification的多种用法
- mysql5.7.17解压版安装
- 负载均衡(Load Balancing)学习笔记一
- (十三)redis 复制(Replication)
- java jvm 内存调优几个设置的一些背景知识
- hadoop2.74+zookeeper3.4.10+hbase1.2.6完全分布式HA集群搭建