前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现ssh远程执行

Python实现ssh远程执行

作者头像
summerking
发布2022-09-19 11:38:26
2K0
发布2022-09-19 11:38:26
举报
文章被收录于专栏:summerking的专栏summerking的专栏

paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式。可以实现远程命令执行、文件传输、中间SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功能

# ssh执行远程命令脚本

点击查看

代码语言:javascript
复制
import paramiko
import sys
def pl_ssh(ip,password,username,cmd,port="22"):
    ssh_client=paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    try:
        ssh_client.connect(hostname=ip,username=username,password=password)
    except Exception as e:
        print('服务器%s连接失败' %ip)
        print(e)
        sys.exit()
    stdin,stdout,stderr=ssh_client.exec_command(cmd)
    print('服务器%s磁盘使用率情况' %ip)
    print(stdout.read().decode("utf-8"))
    ssh_client.close()
if __name__ == '__main__':
    servers={
        "192.168.0.7":{
            "username": "root",
            "password": "hadoop",
            "cmd": "df -h",
            "port": "22"
        },
        "192.168.0.8":{
            "username": "root",
            "password": "hadoop",
            "cmd": "df -h",
            "port": "22"
        }
    }
    for ip,info in servers.items():
        pl_ssh(ip=ip,
               username=info.get("username"),
               password=info.get("password"),
               cmd=info.get("cmd"),
               port=info.get("port")
               )

  • 效果验证

# ssh上传下载文件脚本

点击查看

代码语言:javascript
复制
import  paramiko
transport = paramiko.Transport(('192.168.0.66', 22))
transport.connect(username='root', password='hadoop')
sftp = paramiko.SFTPClient.from_transport(transport)  #ftp+ssh

#将当前主机F:\学习\k8s\微服务、k8s文档\jb51.net.txt文件 放到 192.168.0.66的/home/jb51.net.txt
sftp.put('F:\学习\k8s\微服务、k8s文档\jb51.net.txt', '/home/jb51.net.txt')
# 下载用get
# sftp.get('/home/jb51.net.txt', 'F:\学习\k8s\微服务、k8s文档\jb51.net.txt')
transport.close()

  • 效果验证
代码语言:javascript
复制
[root@summer ~]# cd /home/
[root@summer home]# ll
total 8
-rw-r--r-- 1 root        root        4848 Dec 19 00:30 jb51.net.txt
drwx--x--x 5 summer summer  106 Dec 17 00:36 summer
[root@summer home]# pwd
/home
[root@summer home]# 
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # ssh执行远程命令脚本
  • # ssh上传下载文件脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com