zoukankan      html  css  js  c++  java
  • python_day10 paramiko模块

    paramiko模块

    paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。
    pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
    pip3 install pycrypto
    pip3 install paramiko
    注:如果在安装pycrypto2.0.1时发生如下错误
            command 'gcc' failed with exit status 1...
    可能是缺少python-dev安装包导致
    如果gcc没有安装,请事先安装gcc

    SSHClient

    用于连接远程服务器并执行基本命令

    基于用户名密码连接:

    import paramiko

    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', password='123')

    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    result = stdout.read()

    # 关闭连接
    ssh.close()

    ##############

    import paramiko

    transport = paramiko.Transport(('hostname', 22))
    transport.connect(username='wupeiqi', password='123')

    ssh = paramiko.SSHClient()
    ssh._transport = transport

    stdin, stdout, stderr = ssh.exec_command('df')
    print stdout.read()

    transport.close()

    SSHClient 封装 Transport

    ###########

    import paramiko

    private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')

    # 创建SSH对象
    ssh = paramiko.SSHClient()
    # 允许连接不在know_hosts文件中的主机
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # 连接服务器
    ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', key=private_key)

    # 执行命令
    stdin, stdout, stderr = ssh.exec_command('df')
    # 获取命令结果
    result = stdout.read()

    # 关闭连接
    ssh.close()

    ############

    import paramiko

    private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')

    transport = paramiko.Transport(('hostname', 22))
    transport.connect(username='wupeiqi', pkey=private_key)

    ssh = paramiko.SSHClient()
    ssh._transport = transport

    stdin, stdout, stderr = ssh.exec_command('df')

    transport.close()

    SSHClient 封装 Transport

    ##############

    SFTPClient

    用于连接远程服务器并执行上传下载

    基于用户名密码上传下载

    import paramiko

    transport = paramiko.Transport(('hostname',22))
    transport.connect(username='wupeiqi',password='123')

    sftp = paramiko.SFTPClient.from_transport(transport)
    # 将location.py 上传至服务器 /tmp/test.py
    sftp.put('/tmp/location.py', '/tmp/test.py')
    # 将remove_path 下载到本地 local_path
    sftp.get('remove_path', 'local_path')

    transport.close()

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/onda/p/7111585.html
Copyright © 2011-2022 走看看