码迷,mamicode.com
首页 > 编程语言 > 详细

Python 之远程复制文件及调用远程命令脚本

时间:2015-03-12 15:28:23      阅读:164      评论:0      收藏:0      [点我收藏+]

标签: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 :  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)


本文出自 “欢迎评论,欢迎点赞” 博客,转载请与作者联系!

Python 之远程复制文件及调用远程命令脚本

标签:paramiko   time   sys   os   traceback   commands   

原文地址:http://swq499809608.blog.51cto.com/797714/1619590

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!