现在是使用paramiko库远程登录到服务器执行命令但是要等命令执行完毕后才返回输出的结果 , 没办法实现在WEB端实时显示执行过程 , 有时候命令执行过程中卡着了 , 根本不知道是什么情况 。
其实这个需求可以实现 , 而且比较简单 , 我上个简单的代码吧
测试脚本内容
# -*- coding:utf-8 -*-import sysimport paramikodef 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)# 和其他的写法的区别是这里cwhile True:line = stdout.readline()if len(line) == 0:breakprint(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命令实时显示了 。
推荐阅读
- 百度贴吧开始封禁IDC流量入口
- 运维日志分析工具ELK:Windows与Linux皆可安装
- 聊聊主人杯,紫砂杯如何开杯
- 拍立得相纸打开了再放进去可以用吗 拍立得相纸拍出来后需要撕开吗
- 北站茶城展示茶文化,开封市茶文化研究会2015
- steam交易链接在哪?
- 大四暑假还可以用学生证吗 大四学生证什么时候开始不能用?
- 每天走路20分钟 即可健康防癌
- 连云港明前云雾茶开采,新茶高山云雾茶明前特级毛尖日照充足雨前春茶中秋送礼
- 07年大益韵象,2006年大益金色韵象开汤品鉴