我在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