捕获特定时间之间的设备日志

捕获特定时间之间的设备日志

我们定期从 cron 运行测试脚本,在启动任何操作之前,此测试脚本会清除 /var/log/messages ,并在执行操作后分析 /var/log/messages 中的数据。这不是期望的行为,因为在测试开始时涉及清除设备日志。

如何仅在测试运行之间捕获设备日志。那么该测试只能分析该数据吗?

答案1

也许有不那么笨拙的方法,但你可以跑

tail -0f /var/log/messages > captured_logs

当你的测试脚本运行时;或使用

logger -i "Test started"
# ...test script...
logger -i "Test stopped"

(看logger)以及grep完整日志中之后的部分。当心,我不确定日志翻转时会发生什么,所以更稳健解决方案可能是读取syslogds 插座(-p选项),例如socat

socat UNIX-CLIENT:/var/run/log STDOUT

比 STDOUT 更复杂的东西可能更适合您的需求。 (您甚至可以syslogd在特定时间运行自己的实例,配置(-a选项)以从此套接字捕获日志。)

相关内容