zoukankan      html  css  js  c++  java
  • Paramiko模块

    Paramiko模块用于使用SSH连接远程服务器,执行命令和文件的上传下载

    执行命令,返回命令的结果

     1 import paramiko
     2 
     3 # 创建SSH对象
     4 ssh = paramiko.SSHClient()
     5 # 允许连接不在know_hosts文件中的主机
     6 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
     7 # 连接服务器
     8 ssh.connect(hostname='172.16.0.109', port=22, username='root', password='xile99hang')
     9 
    10 # 执行命令
    11 stdin, stdout, stderr = ssh.exec_command('pwd')
    12 # 获取命令结果
    13 #result = filter(lambda x: x is not None,[stdout.read(),stderr.read()])(0)
    14 result = stdout.read()
    15 print(result)
    16 
    17 # 关闭连接
    18 ssh.close()
    19 
    20 #结果  b'/root
    '

    基于公钥密钥的连接

     1 import paramiko
     2 
     3 private_key = paramiko.RSAKey.from_private_key_file('/home/auto/.ssh/id_rsa')
     4 
     5 # 创建SSH对象
     6 ssh = paramiko.SSHClient()
     7 # 允许连接不在know_hosts文件中的主机
     8 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
     9 # 连接服务器
    10 ssh.connect(hostname='172.16.0.109', port=22, username='root', key=private_key)
    11 
    12 # 执行命令
    13 stdin, stdout, stderr = ssh.exec_command('df')
    14 # 获取命令结果
    15 result = stdout.read()
    16 
    17 # 关闭连接
    18 ssh.close()

    上传和下载文件

     1 import paramiko
     2 
     3 transport = paramiko.Transport(('172.16.0.109',22))
     4 transport.connect(username='root',password='xile99hang')
     5 
     6 sftp = paramiko.SFTPClient.from_transport(transport)
     7 # 将location.py 上传至服务器 /tmp/test.py
     8 sftp.put('/tmp/location.py', '/tmp/test.py')
     9 # 将remove_path 下载到本地 local_path
    10 sftp.get('remove_path', 'local_path')
    11 
    12 transport.close()
  • 相关阅读:
    建设Kubernetes生产环境的16条建议
    深度长文:深入理解Ceph存储架构
    10个最危险的Linux命令,希望你牢记在心
    完美排查入侵者的 10 个方法和 1 个解决思路
    基于Docker&Kubernetes构建PaaS平台基础知识梳理
    Linux入门进阶
    (七)服务接口调用-OpenFeign
    (六)服务调用负载均衡-Ribbon
    (五)Eureka替换方案-Consul
    (四)Eureka替换方案-Zookeeper
  • 原文地址:https://www.cnblogs.com/yoyovip/p/5799191.html
Copyright © 2011-2022 走看看