为什么 `tail -f /var/audit/current | praudit` 只打印 5 行然后立即退出?

为什么 `tail -f /var/audit/current | praudit` 只打印 5 行然后立即退出?

我想实时跟踪我的审计日志,以便观察事件,并通过 praudit 管道传输,使其易于阅读。以下所有命令均以 root 身份运行。

当我运行时tail -f /var/audit/current | praudit,它只打印最后 5 行并立即退出。而tail -f /var/audit/current | cat等待并打印出写入的原始审计日志。praudit和之间的本质区别是什么cat?它们都声称从 stdin 读取,它们似乎都这样做了,只是在praudit没有等待 EOF 的情况下放弃了?或者其他什么?

很想知道为什么会出现这种情况,以及是否有办法以某种方式获得我想要的行为,最好不必修改 praudit...

我使用的是 macOS 10.14.3

答案1

cat无需使用额外的命令(含义和praudit),您便可实现所需的功能。

只需发出tail -f /var/audit/current就会给您最后 10 行,并等待进一步的输出。

编辑1: 好的,我明白你为什么要使用 praudit。我自己不熟悉这个命令。

编辑2: 尝试这个: sudo praudit /dev/auditpipe

审计管道是设备文件系统中的克隆伪设备,允许应用程序利用实时审计记录流。这主要是入侵检测和系统监控应用程序的作者感兴趣的。然而,对于管理员来说,审计管道设备是一种方便的实时监控方式,不会遇到审计跟踪文件所有权或日志轮换中断事件流的问题。

相关内容