#!/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)
转载于:https://blog.51cto.com/swq499809608/1619590