【环境介绍】
系统环境:win10 + python 3.5.4 + PyCharm
【背景描述】
需求:将数据库和主机查询的数据信息写入到Excel表格中
【采集数据脚本信息】
数据库层面 列子:磁盘组信息:
select to_char(sysdate, 'yyyy-mm-dd,hh24:mi:ss') check_time,name,total_mb/1024,free_mb/1024,usable_file_mb/1024,
round(100 * (total_mb - usable_file_mb) / total_mb, 2) used_pct from v$asm_diskgroup;
主机层面 例子:本地空间信息:
df -h
生成原格式数据信息:
cat >xxxdb.log
CHECK_TIME NAME TOTAL_MB FREE_MB USABLE_FILE_MB USED_PCT
------------------- ------------------------------ ---------- ---------- -------------- ----------
2019-06-26,14:53:14 ARCH 817016 449942 449942 44.93
2019-06-26,14:53:14 OCR 91344 90476 30014 67.14
2019-06-26,14:53:14 XXXXBDATA_N 3068346 88085 88085 97.13
2019-06-26,14:53:14 XXXXDBDATA 3579716 425776 425776 88.11
2019-03-26_14:53:23
Filesystem Size Used Available Capacity Mounted on
rpool/ROOT/solaris 196G 8.2G 40G 18% /
rpool/ROOT/solaris/var
196G 1.7G 40G 5% /var
fd 0K 0K 0K 0% /dev/fd
swap 555G 60M 555G 1% /tmp
rpool/ROOT/solaris/oracle
196G 72G 40G 65% /oracle
rpool/VARSHARE 196G 60M 40G 1% /var/share
rpool/VARSHARE/zones 196G 288K 40G 1% /system/zones
rpool/data 10G 288K 10G 1% /data
rpool/export 196G 304K 40G 1% /export
rpool/export/home 196G 29G 40G 43% /export/home
rpool/export/home/admin
196G 352K 40G 1% /export/home/admin
rpool/guests 196G 320K 40G 1% /guests
zg-audit01 29G 1.5G 28G 6% /oracle/audit
------------------- ------------------------------ ---------- ---------- -------------- ----------
2019-06-26,14:53:14 ARCH 817016 449942 449942 44.93
2019-06-26,14:53:14 OCR 91344 90476 30014 67.14
2019-06-26,14:53:14 XXXXBDATA_N 3068346 88085 88085 97.13
2019-06-26,14:53:14 XXXXDBDATA 3579716 425776 425776 88.11
2019-03-26_14:53:23
Filesystem Size Used Available Capacity Mounted on
rpool/ROOT/solaris 196G 8.2G 40G 18% /
rpool/ROOT/solaris/var
196G 1.7G 40G 5% /var
fd 0K 0K 0K 0% /dev/fd
swap 555G 60M 555G 1% /tmp
rpool/ROOT/solaris/oracle
196G 72G 40G 65% /oracle
rpool/VARSHARE 196G 60M 40G 1% /var/share
rpool/VARSHARE/zones 196G 288K 40G 1% /system/zones
rpool/data 10G 288K 10G 1% /data
rpool/export 196G 304K 40G 1% /export
rpool/export/home 196G 29G 40G 43% /export/home
rpool/export/home/admin
196G 352K 40G 1% /export/home/admin
rpool/guests 196G 320K 40G 1% /guests
zg-audit01 29G 1.5G 28G 6% /oracle/audit
【python 脚本】
#加载插件
import xlsxwriter, sys, re
#读取本地路径采集的日志信息
patch_file_name1= str('D:\\软件\\python\\object\\datafiles\\xxxdb.log')
#读取一行的数据
inFile1= open(patch_file_name1,'r').read()
#以 为首尾的中间内容作为一个数组
data = re.findall(r'\n([\s\S]+?)\n',inFile1)
#定义Excel表格名称
workbook = xlsxwriter.Workbook('chuzhang.xlsx')
#定义表格的格式
cell_format = workbook.add_format({
'bold': True,
'border': 1,
'fg_color': '#B8B8B8',
})
#定义表格中的文本内容为自动换行格式
cell_format.set_text_wrap()
#创建第一个sheet1名称
worksheet1 = workbook.add_worksheet('磁盘组使用率')
#写入表格位置并写入数组数据,然后使用定义的表格格式
worksheet1.set_column("A:A", 100)
worksheet1.write('A2', data[0], cell_format)
#创建第二个sheet2名称
worksheet2 = workbook.add_worksheet('本地磁盘使用率')
#写入表格位置并写入数组数据,然后使用定义的表格格式
worksheet2.set_column("A:A", 100)
worksheet2.write('A2', data[1], cell_format)
#关闭表格信息
workbook.close()
【最终结果】
【参考官方文档】
xlsxwriter官方网站,http://xlsxwriter.readthedocs.org/