您的位置:首页 > 理论基础 > 计算机网络

netstat命令和查看http连接状态详解

2013-05-03 17:29 281 查看
经过几天的学习,pexpect模块对于linux下运维脚本编写属实有用,下面写个脚本检验下学习效果。

#!/usr/bin/env python
#coding=utf-8
#远程执行服务器上的脚本
import sys, time, os, multiprocessing
try:
import pexpect
except ImportError:
print """
You must install pexpect module
"""
sys.exit(1)
addr_map = {
's1':('root@192.168.1.1', 'aaa'),
's2':('root@192.168.1.2', 'bbb'),
}
cmd_map = {
'four':"/usr/local/src/four.sh",
'five':"/usr/local/src/five.sh",
}
# 必须带1个参数
if len(sys.argv) != 2:
#系统错误输出
print 'wrong!!!'
sys.stderr.write("Usage: python %s cmd \n" % sys.argv[0])
raise SystemExit(1)

try:
cmd_key = sys.argv[1]
print 'cmd_key: %s' % cmd_key
cmd = cmd_map[cmd_key]
print 'cmd: %s' % cmd
except:
sys.stderr.write("Usage: python %s cmd \n" % sys.argv[0])
print "cmd: four or five"
raise SystemExit(1)
'''
# ####################################
# 定义函数,并将其作为单个进程
def runn(s):
child = pexpect.spawn('ssh %s %s' % (addr_map[s][0],cmd_map[cmd_key]))
index = child.expect(["(?i)password", pexpect.EOF, pexpect.TIMEOUT])
child.sendline(addr_map[s][1])
child.expect(pexpect.EOF)
print child.before
child.sendline("quit")
for key in addr_map:
p = multiprocessing.Process(target=runn, args=(key,))
p.start()
'''
# #######################################
# 将进程定义为类
class ttt(multiprocessing.Process):
def __init__(self,id):
multiprocessing.Process.__init__(self)
self.id = id
print self.id
def run(self):
child = pexpect.spawn('ssh %s %s' % (addr_map[self.id][0],cmd_map[cmd_key]))
index = child.expect(["(?i)passwd",pexpect.EOF,pexpect.TIMEOUT])
child.sendline(addr_map[self.id][1])
child.expect(pexpect.EOF)
print child.before
child.sendline("quit")
for key in addr_map:
p = ttt(key)
p.start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: