如何在远程主机上交互式解析syslog

时间:2014-04-17 16:26:33

标签: python syslog pexpect

我需要在Python中实现以下内容:

  1. 连接到远程主机(基于CentOS 6.5)。
  2. 以交互方式解析syslog(/ var / log / messages)并期待某些特定消息。
  3. 在邮件到达时解析它并验证一些事情。
  4. 我对(1)和(3)没有问题。另一方面也不知道怎么做(2)。 我认为可以通过使用pexpect来完成。

    有什么建议吗?

    提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以编写一些特定的脚本来解析服务器上的/ var / log / messages,或者为它使用一些工具或命令,并将结果发送到shell stdout。例如(抱歉琐碎):

child = pexpect.spawn('ssh user@host')
child.expect('password:')
child.sendline('secure_word')
child.expect(']$')
child.sendline('less /var/log/messages')
child.expect('/^some_data_need_to_get$/')

在这种情况下, less 命令(而不是 less 可以是某些脚本)将输出返回到shell stdout,您可以使用regexp找到所需的一些数据。在4行描述了一些我们期望的提示。