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()

  • 相关阅读:
    s3c6410时钟初始化
    一句话题解&&总结
    2019-9-2-本文说如何显示SVG
    2019-9-2-本文说如何显示SVG
    2018-8-3-WPF-读取硬件序列号
    2018-8-3-WPF-读取硬件序列号
    2018-8-10-win10-uwp-调试软件启动
    2018-8-10-win10-uwp-调试软件启动
    2018-8-10-使用-RetroShare-分享资源
    2018-8-10-使用-RetroShare-分享资源
  • 原文地址:https://www.cnblogs.com/onda/p/7111585.html
Copyright © 2011-2022 走看看