Вывод запланированной команды 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. Но это отдельная проблема.