Выполнение скрипта на стороне клиента

Started by E@gle-owl, April 06, 2016, 03:29:53 PM

Previous topic - Next topic

E@gle-owl

Я в конфигурации агента добавил параметр:

ExternalParameter = Test:/usr/sbin/test.sh

Затем добавил DCI который берет информацию из Test.

Скрипт в терминале я выполняю так sudo -u testuser /usr/sbin/test.sh... Это необходимо по той причине, что только пользователь testuser может получить данные необходимые для мониторинга, продиктовано это политикой безопасности и изменить это нельзя.

ExternalParameter = Test: sudo -u testuser /usr/sbin/test.sh - не работает, я так понимаю, что linux ждет ввода пароля, которого нет.
В sudoer в самом конце добавлен параметр root ALL=(ALL:ALL) NOPASSWD: /usr/sbin/test.sh, что влечет за собой отсутствие запроса на ввод пароля при выполнении команды sudo -u testuser /usr/sbin/test.sh через терминал.

Собственно вопрос, как можно выполнить скрипт и получить данные в netxms?

Alex Kirhenshtein

Я только что проверил – работает:

nxagentd.conf:
ExternalParameter = TestSUDO:sudo -u alk /tmp/test.sh

~ % cat /tmp/test.sh
#!/bin/sh

id

% ls -la /tmp/test.sh
-rwxr-xr-x  1 alk  wheel  14 Apr  8 01:16 /tmp/test.sh

~ % nxget localhost TestSUDO
uid=501(alk) gid=20(staff) groups=20(staff),503(boinc_project),502(boinc_master),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),701(com.apple.sharepoint.group.1),33(_appstore),100(_lpoperator),204

Запустите агент с DebugLevel=4 (e.g. nxagentd -D4) и проверьте ошибки.