<无详细内容>
标签: <无>
代码片段(1)[全屏查看所有代码]
1. [文件] jssh.py ~ 2KB 下载(10)
01 | #!/usr/bin/python |
02 | #-*- coding:utf-8 -*- |
03 | #author sunbx@funshion.com |
04 | #date 2013-10-10 |
05 |
06 | import sys, time, os, multiprocessing |
07 |
08 | try : |
09 | import pexpect |
10 | except ImportError: |
11 | print """ |
12 | You must install pexpect module |
13 | """ |
14 | sys.exit( 1 ) |
15 |
16 | addr_map = { |
17 | 'server_1' : ( 'sunbx@192.168.8.91' , 'sunbx' ), |
18 | 'server_2' : ( 'sunbx@192.168.8.91' , 'sunbx' ), |
19 | 'server_3' : ( 'sunbx@192.168.8.91' , 'sunbx' ), |
20 | 'server_4' : ( 'sunbx@192.168.8.91' , 'sunbx' ), |
21 | 'server_5' : ( 'sunbx@192.168.8.91' , 'sunbx' ), |
22 | } |
23 |
24 | cmd_map = { |
25 | 'huitui' : "/home/sunbx/path/server/workspace/project/.script/huitui.sh" , |
26 | 'fabu' : "/home/sunbx/path/server/workspace/project/.script/fabu.sh" , |
27 | } |
28 |
29 | if len (sys.argv) ! = 2 : |
30 | sys.stderr.write( "Usage: python %s cmd \n" % sys.argv[ 0 ]) |
31 | raise SystemExit( 1 ) |
32 | |
33 | try : |
34 | cmd_key = sys.argv[ 1 ] |
35 | cmd = cmd_map[cmd_key] |
36 | except : |
37 | sys.stderr.write( "Usage: python %s cmd \n" % sys.argv[ 0 ]) |
38 | print """ |
39 | cmd: huitui or fabu |
40 | """ |
41 | raise SystemExit( 1 ) |
42 |
43 | cmd_output_map = {} |
44 |
45 | class JsshProcess(multiprocessing.Process): |
46 | def __init__( self , server_id): |
47 | multiprocessing.Process.__init__( self ) |
48 | self .server_id = server_id |
49 | def run( self ): |
50 | server = pexpect.spawn( 'ssh %s' % addr_map[ self .server_id][ 0 ]) |
51 | #server.expect('.*yes/no.*') |
52 | #server.sendline("yes") |
53 | server.expect( '.*ssword:' ) |
54 | server.sendline(addr_map[ self .server_id][ 1 ]) |
55 | command_output = pexpect.run( 'bash %s' % cmd) |
56 | server.sendline( "quit" ) |
57 | print command_output + self .server_id |
58 |
59 | for key in addr_map: |
60 | p = JsshProcess(key) |
61 | p.start() |