netlt 2021-08-09 18:06 采纳率: 50%
浏览 422
已结题

python paramiko模块如何判断SSH命令已执行完成

这是我定义的一个ssh登陆并使用命令获取执行结果的一个函数,现在使用的是time.sleep() 来保证命令能够执行完成。这样就导致我批量执行的速度就比较慢,请问可否有不使用time.sleep() 方法,使用循环来判断我的命令已执行完成。然后将结果输出到output。
不要使用exec_command方法,这个一次只能执行一条命令。

import paramiko
import time

device_ip = '1.1.1.1'
username = 'luotao'
password = 'luotao'
command1 = 'terminal length 0'
command2 = 'show run'
command3 = 'show tech'

def ssh_exec_command2(device_ip, username, password, command1, command2):
    port = 22
    ssh_client = paramiko.SSHClient()
    ssh_client.load_system_host_keys()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_client.connect(device_ip, port, username, password, timeout=5)
    print('连接设备 ', device_ip)
    command = ssh_client.invoke_shell()
    command.send(command1+'\n')
    time.sleep(1)
    command.send(command2+'\n')
    time.sleep(50)
    command.send(command3+'\n')
    time.sleep(50)
    output = command.recv(999999)
    ssh_client.close()
    return output

```

  • 写回答

4条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 8月21日
      • 已采纳回答 8月13日
      • 创建了问题 8月9日

      悬赏问题

      • ¥15 中文语料库检索构式 求助
      • ¥20 boost升压电路频率和占空比的选择
      • ¥15 Linux gcc升级问题
      • ¥100 如何封禁域名,让app打不开呢?
      • ¥15 通过安卓命令如何打开控制中心
      • ¥15 Nginx 配合Django 丢样式
      • ¥15 求问Python学生成绩管理系统的问题
      • ¥15 求🐏了个🐏第二关的代码,c语言
      • ¥20 类似羊了个羊修改三个不同图片才能消除
      • ¥15 环绕字符串的子字符串个数(实在做不出来,只能做到普通字符串)