1,先把数据库服务器的信息录入到表内,表格式如下.
2,利用python的cgi脚本从表中按照规则读取数据
3,用web界面展示
建立一个表,语句如下(字段解释参照cgi部分):
-
CREATE TABLE `host_db` (
-
`id` int(11) NOT NULL AUTO_INCREMENT,
-
`site` char(10) NOT NULL,
-
`hostname` char(30) NOT NULL,
-
`ip_eth0` varchar(50) NOT NULL,
-
`ip_eth1` varchar(50) NOT NULL,
-
`db_type` varchar(45) NOT NULL,
-
`db_version` varchar(45) NOT NULL,
-
`db_port` varchar(45) NOT NULL,
-
`structure` varchar(45) NOT NULL,
-
`cluster` varchar(45) DEFAULT NULL,
-
`role` varchar(45) DEFAULT NULL,
-
`vip` varchar(45) DEFAULT NULL,
-
`developer` varchar(255) DEFAULT NULL,
-
`work` varchar(255) DEFAULT NULL,
-
`affect` varchar(255) DEFAULT NULL,
-
`mark` text,
-
PRIMARY KEY (`id`)
- ) ENGINE=InnoDB
web的cgi脚本如下:
-
#!/usr/bin/python
-
#coding=utf-8
-
-
import sys
-
-
reload(sys)
-
sys.setdefaultencoding('utf-8')
-
#这两个的作用是设置python默认编码为utf8
-
import MySQLdb
-
import cgi
-
-
print "Content-Type: text/html charset=utf-8 \n"
-
print "
数据库列表 "
-
print ""
-
print "
数据库列表
"
-
print "
- "
-
print '''
-
请选择要查询的类型:
-
数据库XXX
-
数据库XXX
-
数据库XXX
-
数据库XXX
-
-
请出入要查询的主机名:
-
-
-
'''
-
#下面的函数,提供了主要的检索功能,其中修改了部分名字,大家可以参考一下思路.感兴趣的可以单独联系.
-
def SEL_HOST(HN='') :
-
if HN == 'host_x':
-
SQL_HOST = 'SELECT * FROM host_db'
-
NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db'
-
elif HN == 'host_x':
-
SQL_HOST = 'SELECT * FROM host_db WHERE structure="XX" ORDER BY cluster'
-
NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db WHERE structure="XX"'
-
elif HN == 'host_x':
-
SQL_HOST = 'SELECT * FROM host_db WHERE structure="XX" ORDER BY cluster'
-
NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db WHERE structure="XX"'
-
elif HN == 'host_x':
-
SQL_HOST = 'SELECT * FROM host_db WHERE structure="XX" ORDER BY cluster'
-
NUM_HOST = 'SELECT COUNT(DISTINCT hostname) FROM host_db WHERE structure="XX"'
-
else:
-
SQL_HOST = 'SELECT * FROM host_db WHERE hostname LIKE "%%%s%%"' % (HN)
-
if 'NUM_HOST' in dir():
-
CUR.execute(NUM_HOST)
-
print "
所查询的主机数量: %s
" % CUR.fetchone()
-
CUR.execute(SQL_HOST)
-
for data in CUR.fetchall():
-
print "
"
"
- print "
" % (data[0])实例id %s
- print "
" % (data[1])机房 %s
- print "
" % (data[2])主机名 %s
- print "
" % (data[3])内网ip %s
- print "
" % (data[4])外网ip %s
- print "
" % (data[5])数据库类型 %s
- print "
" % (data[6])数据库版本 %s
- print "
" % (data[7])数据库端口 %s
- print "
" % (data[8])架构 %s
- print "
" % (data[9])架构名 %s
- print "
" % (data[10])角色 %s
- print "
" % (data[11])vip %s
- print "
" % (data[12])开发负责人 %s
- print "
" % (data[13])应用 %s
- print "
" % (data[14])影响 %s
- print "
" % (data[15])备注 %s
- print "
- print "
-
print ""
-
def main() :
-
form = cgi.FieldStorage()
-
# if form.has_key('hostname'):
-
hostname = form['hostname'].value
-
-
if __name__ == '__main__':
-
CON = MySQLdb.connect(host='192.168.250.253',user='dba_work',passwd='123456',db='dba_work',charset='utf8',use_unicode = True)
-
CUR = CON.cursor()
-
form = cgi.FieldStorage()
-
if form.has_key('hostname'):
-
hostname = form['hostname'].value
-
SEL_HOST(hostname)
-
elif form.has_key('host_list'):
-
host_all = form['host_list'].value
-
SEL_HOST(host_all)
-
else:
-
pass
-
print ""
-
print ""
- CUR.close()