如何使paramiko expect中的tail函数超时



我在python2.7中使用paramikoe的(paramiko-expect)尾部功能通过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)

我是paramiko expect:)的作者

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

我鼓励你在回购协议下在GitHub上创建一个问题,我一定会在未来考虑一个好的解决方案,就像以前一样。

参见Paramiko Expect-尾随

一切顺利
Fotis

相关内容

  • 没有找到相关文章

最新更新