zoukankan      html  css  js  c++  java
  • paramiko操作详解(封装好的类,可以直接使用)

    #!/usr/bin/env python
    #encoding:utf8
    #author: djoker
    
    import paramiko
    
    class myParamiko:
        def __init__(self,hostip,username,password,port=22):
            self.hostip = hostip
            self.port = port
            self.username = username
            self.password = password
            self.obj = paramiko.SSHClient()
            self.obj.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            self.obj.connect(self.hostip,self.port,self.username,self.password)
            self.objsftp = self.obj.open_sftp()
    
        def run_cmd(self,cmd):
            stdin,stdout,stderr = self.obj.exec_command(cmd)
            return stdout.read()
    
        def run_cmdlist(self,cmdlist):
            self.resultList = []
            for cmd in cmdlist:
                stdin,stdout,stderr = self.obj.exec_command(cmd)
                self.resultList.append(stdout.read())
            return self.resultList
    
        def get(self,remotepath,localpath):
            self.objsftp.get(remotepath,localpath)
    
        def put(self,localpath,remotepath):
            self.objsftp.put(localpath,remotepath)
    
        def getTarPackage(self,path):
            list = self.objsftp.listdir(path)
            for packageName in list:
                stdin,stdout,stderr  = self.obj.exec_command("cd " + path +";"
                                                             + "tar -zvcf /tmp/" + packageName
                                                             + ".tar.gz " + packageName)
                stdout.read()
                self.objsftp.get("/tmp/" + packageName + ".tar.gz","/tmp/" + packageName + ".tar.gz")
                self.objsftp.remove("/tmp/" + packageName + ".tar.gz")
                print "get package from " + packageName + " ok......"
    
        def close(self):
            self.objsftp.close()
            self.obj.close()
    
    if __name__ == '__main__':
        sshobj = myParamiko('10.10.8.21','root','xxxxxxxx',22)
        sshobj.close()
    每一次启程都是从搬砖开始......
  • 相关阅读:
    优秀程序设计的Kiss原则(keep it simple,stupid)
    前端模块化 (好文分享)
    sublime 常用快捷键(转)
    认识与入门 MarkDown (转Te_Lee)
    Sublime Text 3 常用插件以及安装方法(转)
    Flex 布局
    eclipse neon 离线安装插件
    mysql 自动备份命令
    java大并发数据保存方案
    基于webapi的移动互联架构
  • 原文地址:https://www.cnblogs.com/djoker/p/5906711.html
Copyright © 2011-2022 走看看