您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

运维开发之paramiko远程执行命令实时返回

时间:2020-11-19 12:21:58  来源:  作者:

现在是使用paramiko库远程登录到服务器执行命令但是要等命令执行完毕后才返回输出的结果,没办法实现在WEB端实时显示执行过程,有时候命令执行过程中卡着了,根本不知道是什么情况。

其实这个需求可以实现,而且比较简单,我上个简单的代码吧

测试脚本内容

# -*- coding:utf-8 -*-
import sys
import paramiko


def ssh_exec_command(hostname, port, username, password):
    client = paramiko.SSHClient()
    client.load_system_host_keys()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=hostname, port=port, username=username, password=password)
    # 模拟命令输出
    command = 'ping www.baidu.com -c 5'
    stdin, stdout, stderr = client.exec_command(command)
    stderr.channel.set_combine_stderr(stdout)
    # 和其他的写法的区别是这里c
    while True:
        line = stdout.readline()
        if len(line) == 0:
            break
        print(str(line.strip()))
    client.close()
    return stdout.channel.recv_exit_status()


if __name__ == '__main__':
    exit_status = ssh_exec_command(hostname='192.168.209.128', port=22, username='root', password='redhat')
    if exit_status == 0:
        print('命令执行成功!')
        sys.exit(exit_status)
    else:
        print('命令执行失败!')
        sys.exit(exit_status)

测试看看效果

运维开发之paramiko远程执行命令实时返回

 

接下来可以改成把输出的信息保存到文件,结合上一篇的内容实现ssh命令实时显示了。



Tags:paramiko   点击:()  评论:()
声明:本站部分内容来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
现在是使用paramiko库远程登录到服务器执行命令但是要等命令执行完毕后才返回输出的结果,没办法实现在WEB端实时显示执行过程,有时候命令执行过程中卡着了,根本不知道是什么情...【详细内容】
2020-11-19   paramiko  点击:(0)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条