zoukankan      html  css  js  c++  java
  • python ssh登录下载上传脚本

    # -*- coding: cp936 -*-
    import paramiko
    
    class SSHConnection(object):
        def __init__(self, host, port, username, password):
            self._host = host
            self._port = port
            self._username = username
            self._password = password
            self._transport = None
            self._sftp = None
            self._client = None
            self._connect()  # 建立连接
     
        def _connect(self):
            transport = paramiko.Transport((self._host, self._port))
            transport.connect(username=self._username, password=self._password)
            self._transport = transport
     
        #下载
        def download(self, remotepath, localpath):
            if self._sftp is None:
                self._sftp = paramiko.SFTPClient.from_transport(self._transport)
            self._sftp.get(remotepath, localpath)
     
        #上传
        def put(self, localpath, remotepath):
            if self._sftp is None:
                self._sftp = paramiko.SFTPClient.from_transport(self._transport)
            self._sftp.put(localpath, remotepath)
     
        #执行命令
        def exec_command(self, command):
            if self._client is None:
                self._client = paramiko.SSHClient()
                self._client._transport = self._transport
            stdin, stdout, stderr = self._client.exec_command(command)
            data = stdout.read()
            if len(data) > 0:
                print data.strip()   #打印正确结果
                return data
            err = stderr.read()
            if len(err) > 0:
                print err.strip()    #输出错误结果
                return err
     
        def close(self):
            if self._transport:
                self._transport.close()
            if self._client:
                self._client.close()
    #if __name__ == "__main__":
        #conn = SSHConnection('192.168.5.212', 22, 'root', '123456')
     
        #conn.exec_command('ls -l')
    
    
                
  • 相关阅读:
    DB9 ------ 接口定义
    以太网 ------ Auto-Negotiation(自动协商)
    Qt ------ 添加某个功能,比如(QSerialPort)注意事项
    Modbus
    Centos7.5 安装JDK1.8 步骤
    Kafka 消息中间件
    使用RabbitMQ实现分布式事务
    RabbitMq的环境安装
    RabbitMQ消息中间件的用法
    基于Docker+Jenkins实现自动化部署
  • 原文地址:https://www.cnblogs.com/classics/p/11378511.html
Copyright © 2011-2022 走看看