Вывод запланированной команды Nxlog pipe

Я пытаюсь прочитать вывод last Команда в Nxlog. Я хотел бы бежать last на utmp файл на регулярной основе. Другими словами, я хочу запланировать запуск команды оболочки с интервалом времени и направить вывод как событие журнала. Другими словами, я хотел бы иметь <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. Но это отдельная проблема.

Другие вопросы по тегам