最近觉得很各个环境的机器找来找去比较繁琐,信息可以在日记中找到,但是问题是日记的归类很成问题,时间一长你就会忘记当时的那篇文档写哪去了。其实信息查找这个问题大家解决不了。为了解决这个问题,我决定写一些脚本辅助显示一下信息,这样比较快。这有点像快速检索单,抛弃一大堆的信息查询,将最常用的那些信息显示出来即可。
本次主要解决的问题是机器密码的问题,由于环境多,每次连接一台机器,找密码能烦死我。于是我决定写个脚本来显示所有环境,所有机器,以及机器对应的密码。
效果如下:
对就是利用制表符进行信息的处理,我是利用python实现的。下面贴下代码:
#!/usr/bin/python
#coding:utf-8
def printHeader(col):
print('╔'),
print("\b{0}".format("═" * 25)),
for i in range(col-1):
print("\b╦"),
print( "\b{0}".format("═" * 25)),
print ("\b╗")
def printTail(col):
print('╚'),
print("\b{0}".format("═" * 25)),
for i in range(col-1):
print("\b╩"),
print( "\b{0}".format("═" * 25)),
print ("\b╝")
def printRow(col):
print('╠'),
print("\b{0}".format("═" * 25)),
for i in range(col-1):
print("\b╬"),
print( "\b{0}".format("═" * 25)),
print ("\b╣")
def printGroupEndRow(col):
print('╠'),
print("\b{0}".format("═" * 25)),
for i in range(col-1):
print("\b╩"),
print( "\b{0}".format("═" * 25)),
print ("\b╣")
def printGroupStartRow(col):
print('╠'),
print("\b{0}".format("═" * 25)),
for i in range(col-1):
print("\b╦"),
print( "\b{0}".format("═" * 25)),
print ("\b╣")
def printGroupSplitRow(col):
printGroupEndRow(col)
printGroupStartRow(col)
def printRowContent(col, values):
print('║'),
for value in values:
print("\b%(value)-25s" % {'value': value}),
print("\b║"),
print ""
def printContent(content):
printHeader(2)
first = 0
for key in content:
if (first != 0):
printRow(2)
else:
first = 1
printRowContent(2, content[key])
printTail(2)
content = {
0: ["test00", "value00"],
1: ["test01", "value01"],
2: ["test02", "value02"],
3: ["test03", "value03"],
4: ["test04", "value04"],
5: ["test05", "value05"],
6: ["test06", "value06"],
7: ["test07", "value07"],
8: ["test08", "value08"],
9: ["test09", "value09"],
10: ["test10", "value10"],
1001: ["test1001", "value1001"],
1002: ["test1002", "1002"],
}
# printContent(content)
# 给出一个example,没啥用
def example():
col = 4;
printHeader(col)
printRowContent(col, ["Environment", "Application", "ip Address", "Passwd"])
printRow(col)
printRowContent(col, ["dev", "test","192.168.1.1", "passwd"])
printRow(col)
printRowContent(col, ["sit", "test","192.168.1.1", "passwd"])
printRow(col)
printRowContent(col, ["test", "test","192.168.1.1", "passwd"])
printGroupSplitRow(col)
printRowContent(col, ["Environment2", "Application2", "ip Address2", "Passwd2"])
printRow(col)
printRowContent(col, ["dev", "test","192.168.1.1", "passwd"])
printRow(col)
printRowContent(col, ["sit", "test","192.168.1.1", "passwd"])
printRow(col)
printRowContent(col, ["test", "test","192.168.1.1", "passwd"])
printGroupSplitRow(col)
printRowContent(col, ["dev", "test","192.168.1.1", "passwd"])
printRowContent(col, ["sit", "test","192.168.1.1", "passwd"])
printTail(col)
example()
这就是一个简单的实现,其实就是一行一行的打印,图片是按照example进行的打印。printContent是一个打印表格的可配置化示例,当然这个还不通用,但是基本是够用的。