python获取服务器监听端口和其服务 发表于 2014-08-01 | 分类于 Ops , Script | 热度 | 字数统计: 265 | 阅读时长 ≈ 1 下获取minion端监听端口和其服务的python脚本。能够得到行对应的信息或直接一个列表信息。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#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() 测试结果: ----------------本文结束 感谢阅读---------------- : 小马 : http://www.azjoy.com/2014/08/01/python/ : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!