鱼C论坛

 找回密码
 立即注册
查看: 2619|回复: 2

python里想加个远程主机是否执行完毕的判断,请问如何加?

[复制链接]
发表于 2019-11-18 22:34:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
抄了一个别人的代码

def sshRunCmd(hostname, username, password, cmdlist):
    try:
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # 创建ssh连接
        client.connect(hostname=hostname, port=22, username=username, password=password)
        # 开启ssh管道
        ssh = client.get_transport().open_session()
        ssh.get_pty()
        ssh.invoke_shell()
        # 执行指令
        for cmd in cmdlist:
            ssh.sendall(cmd)
            #我就想在这里加个判断,如果上面的东西执行完毕了(也就是不再继续产生内容了),那么就往下进行,否则就等待,远程主机是比较蠢的设备,不是通用的linux
            time.sleep(2)#因为执行的命令比较多,不想把这个sleep时间弄的太长,我试过sleep调到10分钟就没有问题
            result = ssh.recv(102400)
            result = result.decode(encoding='UTF-8', errors='strict')
            print(result)
            f = open(path + '/' + hostname +'_'+ today + ".txt", "a")
            #f.write("111 ")
            f.write(result)
            f.close()
    except Exception as e:
        print("[%s] %s target failed, the reason is %s" % (datetime.datetime.now(), hostname, str(e)))
    else:
        print("[%s] %s target success" % (datetime.datetime.now(), hostname))
    finally:
        ssh.close()
        client.close()

比如cmdlist['dir c:/s','dir d:/s']
这个dir c:/s可能要执行几分钟,我想有一个判断,知道这个dir c:/s已经输出完毕,而不是输出刚滚到一半就没了
比如对比一下当前接收到的东西跟一秒前有什么区别,如果没有区别,就往下进行
但是就是不知道有没有这样的工具
或者接收到的变量内存占用超过n秒没有变化啥的也行。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-19 10:08:46 | 显示全部楼层
编辑一下,比如被登陆的机器是linux,命令是ping -c 100 8.8.8.8,这种回应就是100条ping的回应,隔1秒回一条
我想的是设置一直在接受,每隔n秒跟上一次比对一次,如果没有新内容增加,那么就继续往下走,如果有新内容增加,那么就继续等待,直至完成
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-19 21:11:50 | 显示全部楼层
请问有人知道么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-20 20:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表