巡检代码主体
仅供练习使用
import os
import shutil
import daycheck_v1.source.database as dbc
import daycheck_v1.source.readfile as rf
# 日期转换+空值判断
def date_rep(t_date):
if t_date is None:
return 'Null'
else:
return t_date.ctime()
# 数据库列表配置文件
dfilename = '.configdatabaselist'
dfile = rf.dbreadlist(dfilename)
# 数据库报告存储目录
r_path = r'E:testdaycheck_v1report'
os.chdir(r_path)
# 判断目录是否存在,若存在则删除
if 'dbreport' in os.listdir():
shutil.rmtree('dbreport')
os.mkdir('dbreport')
dr_path = r'E:testdaycheck_v1reportdbreport'
# 根据数据库列表查询数据
for dbl in dfile:
# 初始化数据库对象
db = dbc.Database(dbl.split(',')[0], dbl.split(',')[1], dbl.split(',')[2])
# 生成报告
os.chdir(dr_path)
dbname = dbl.split(',')[2].split(':')[0] + '_' + dbl.split(',')[2].split(':')[1].split('/')[1]
os.mkdir(dbname)
os.chdir(dr_path + '\' + dbname)
dbrf = dbname + '.txt'
dbr = open(dbrf, 'w+')
# 数据库用户状态
rep = db.c_usr_stat()
if rep.count('查询错误') != 0:
dbr.write('数据库用户状态' + rep)
else:
dbr.write('数据库用户状态n')
dbr.write('%-30s%-20s%-30s%-30sn' % ('用户名', '状态', '锁定时间', '失效时间'))
for row in rep:
dbr.write('%-30s%-20s%-30s%-30sn' % (row[0], row[1], date_rep(row[2]), date_rep(row[3])))
dbr.close()



