Я пытаюсь прочитать вывод 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.)
Я нашел рабочее решение для 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. Но это отдельная тема.