【问题标题】:How to timeout the tail function in paramiko-expect?如何使 paramiko-expect 中的尾部函数超时?
【发布时间】:2016-08-01 04:33:47
【问题描述】:

我正在使用 paramikoe 的(paramiko-expect)tail 功能通过 python2.7 中的 ssh 跟踪远程日志文件。但我希望它在指定时间(如 12 小时左右)后停止。我不想使用 Ctrl+C。有没有办法给它添加超时?

目的是监视包含远程系统中发生的错误的日志文件。将发送一封邮件,其中包含日志文件中的错误行。它应该只监视指定的给定时间。

非常欢迎任何其他替代方法!

提前致谢!

这是它的代码:

import paramiko

from paramikoe import SSHClientInteraction


def print_me(line_prefix, current_line):

  if not current_line == '':
      a = current_line
      print a
      #SEND MAIL CODE HERE
      return current_line

hostname = '1.1.1.1'
username = 'root'
password = 'abcd'
prompt = '.*=# '

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=hostname, username=username, password=password)

interact = SSHClientInteraction(client,timeout=10,display=False)

interact.send('tail -f /usr/elog/elog | grep -i --line-buffered severity')
interact.tail(line_prefix = hostname+': ' , callback = print_me)

【问题讨论】:

    标签: python timeout expect paramiko tail


    【解决方案1】:

    我是 paramiko-expect 的作者 :)

    不幸的是,目前除了使用回调功能引发异常会中断 tail 函数中的无限循环之外,没有优雅的解决方案。不幸的是,这有一些缺点,因为连接可能无法正常关闭。

    我鼓励您在 GitHub 上的 repo 下创建一个问题,并且我一定会在未来考虑一个好的解决方案,因为它以前出现过。

    Paramiko Expect - Tailing

    一切顺利
    福蒂斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2014-12-28
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多