標籤:paramiko time sys os traceback commands
#!/usr/bin/env python#-*-coding:UTF-8-*-"""@Item : v1.0@Author : ShengWangQiang@Group : System @Date : 2015-01-28@E-mail : [email protected]@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)
本文出自 “歡迎評論,歡迎點贊” 部落格,轉載請與作者聯絡!
Python 之遠程複製檔案及調用遠程命令指令碼