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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#!/usr/bin/env python #-*-coding:UTF-8-*- """ @Item : v1.0 @Author : ShengWangQiang @Group : System @Date : 2015-01-28 @E-mail : swq.499809608@hotmail.com @Funtion: """ import sys,time,os,traceback,commands,
import paramiko,
class Remote( object ):
def __init__( self ):
version = 'v0.1'
self .users = 'root'
self .passwd = "1234567890"
self .port = 22
def log( self ,info):
files = open ( '/tmp/deploy.log' , 'a' )
try :
files.write( '[%s]: %s \n' % (time.ctime(),info))
except IOError:
files.close()
files.close()
def cmds( self ,host,comm):
try :
print comm
client = paramiko.Transport((host, int ( self .port)))
client.connect(username = self .users,password = self .passwd)
chan = client.open_session()
chan.exec_command(comm)
chan.close()
except :
print 'host' , host
print traceback.format_exc()
self .log(traceback.format_exc())
def sftps( self ,host,files):
try :
lodir = '/opt/onfile'
rmdir = '/opt/onfile'
client = paramiko.Transport((host, int ( self .port)))
client.connect(username = self .users,password = self .passwd)
sftp = paramiko.SFTPClient.from_transport(client)
sftp.put( '%s/%s' % (lodir,files), '%s/%s' % (rmdir,files))
client.close()
except :
print traceback.format_exc()
self .log(traceback.format_exc())
def work( self ,comm):
fp = open ( '/opt/online/ser_list.txt' ).readlines()
for s in fp:
host = s.strip()
self .cmds(host,comm)
def sftp( self ,comm):
fp = open ( '/opt/online/ser_list.txt' ).readlines()
for s in fp:
host = s.strip()
self .sftps(host,files)
if __name__ = = '__main__' :
sc = Remote()
func = sys.argv[ 1 ]
files = sys.argv[ 2 ]
if func = = 'sftp' :
sc.sftp(files)
elif func = = 'work' :
sc.work(files)
|