python获取服务器监听端口和其服务

下获取minion端监听端口和其服务的python脚本。能够得到行对应的信息或直接一个列表信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#coding=utf-8 
#!/usr/bin/python
import string import commands
##########返回命令执行结果
def getComStr(comand):
try:
stat, proStr = commands.getstatusoutput(comand)
except:
print "command %s execute failed, exit" % comand
#将字符串转化成列表
proList = proStr.split("\n")
return proStr

##########获取系统服务名称和监听端口
def filterList():
tmpStr = getComStr("netstat -tpln")
tmpList = tmpStr.split("\n")
del tmpList[0:2]
newList = []
for i in tmpList:
val = i.split()
del val[0:3]
del val[1:3]
#提取端口号
valTmp = val[0].split(":")
val[0] = valTmp[1]
#提取服务名称
valTmp = val[1].split("/")
val[1] = valTmp[-1]
#用空格将列表连接成字符串,便于PHP或Shell处理
val = ' '.join(val)
#追加值到新的列表
if ' -' not in val:
newList.append(val)
return newList

##########通过系统进程来获取其他的服务pass
#def filterListOther():

def main():
netInfo = filterList()
#追加列说明
netInfo.append(netInfo[0])
netInfo[0] = 'appPort appName'
#去重并保持原来的索引顺序
appInfo = list(set(netInfo))
appInfo.sort(key=netInfo.index)
for i in appInfo:
print i
#print appInfo

if __name__ == "__main__":
main()

测试结果:
python01
python02

----------------本文结束 感谢阅读----------------