Nxlog pipe 调度命令输出

Nxlog pipe 调度命令输出

我正在尝试读取 Nxlog 中命令的输出last。我想定期lastutmp文件运行。换句话说,我想安排一个 shell 命令以时间间隔运行并将输出作为日志事件传输。换句话说,我想 <Schedule>在模块中包含子句im_exec,但这似乎是不可能的,所以我正在尝试其他方法(示例适用于 Linux):

<Input sample_umtp_linux>
  Module im_null
  <Schedule>
    Every   1 sec
    Exec exec("/usr/bin/last", "-f", "/var/run/utmp");
  </Schedule>
</Input>

<Output out_debug>
    Module    om_file
    File      '<mydir>/debug.log'
</Output>

<Route processwtmp>
    Path      sample_umtp_linux => out_debug
</Route>

我没有收到任何错误消息,但也没有收到任何输出。有没有办法捕获输出并将其输入到 Nxlog 路由中?

附加限制:我将把解决方案部署到 Hp Ux,因此在可用的系统工具方面,我的选择有点有限。我希望尽可能少地依赖 Nxlog 本身之外的东西。)

答案1

我找到了一个适用于 Linux 的、相当明显的解决方案:

<Input sample_umtp_linux>
  Module im_exec
  Command <my_script_dir>/run_last_forever.sh
</Input>

使用脚本,run_last_forever.sh如下所示:

#!/bin/sh
while true
do
    /usr/bin/last -f /var/run/utmp
    sleep 1
done

然而,看来 Nxlog 毕竟无法为 HP-UX 构建。但那是另一个问题。

相关内容