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) |