Выполнение команды на сервере (Linux)
-
Добрый день

Помогите разобраться с действием: Выполнение команды на сервере
У меня есть php скрипт для отправки SMS (/home/netxms/Documents/sms/sms.php) в него я передаю два параметра arg1(Текст СМС) и arg2(Телефон). Сделал действие как на скриншоте:
php /home/netxms/Documents/sms/sms.php '%M' 'NOMER'
Но ничего не выполняется, смс не приходит, через консоль сервера этот скрипт отрабатывает и смс летит.
В документации не очевидно написано, можно ли так выполнять или нет. Подскажите смогу ли я вообще такое реализовать?

-
Нужно проверить, но скорее всего на windows действия запускаются через вызов CreateProcess(), в этом случае файл ищется в path, но расширение автоматом не подставляется. Попробуейте php.exe или если не поможет, то написать его с полным путем.
-
У меня Linux (в шапке темы указано
)
Получилось вызывать скрипт вот такой командой:nxget localhost Test_SMS '%m %n' 'NOMER'
где Test_SMS - это в файле nxagentd.conf строка ExternalParameterShellExec = Test_SMS:php /home/netxms/Documents/sms/sms.php для вызова скрипта.
Но проблема что не передаётся в скрипт параметры. Как сделать подскажите передачу параметров ошибки и номера телефона?
-
Для ExternalParameterShellExec подстановку параметров можно делать через $1, $2, и т.д. Например
ExternalParameterShellExec = Test_SMS:php /home/netxms/Documents/sms/sms.php "$1" "$2"
Серверная команда тоже должна работать. Посмотрите лог сервера на уровне 5 - должны быть записи вида "Executing command ..." и "RunCommandThread: failed to execute command ..." при ошибке.
-
@victor said in Выполнение команды на сервере (Linux):
Для ExternalParameterShellExec подстановку параметров можно делать через $1, $2, и т.д. Например
ExternalParameterShellExec = Test_SMS:php /home/netxms/Documents/sms/sms.php "$1" "$2"
Серверная команда тоже должна работать. Посмотрите лог сервера на уровне 5 - должны быть записи вида "Executing command ..." и "RunCommandThread: failed to execute command ..." при ошибке.
Какая-то странность, вчера не работала команда описанная в первом посте, а сегодня уже работает и шлёт всё корректно! Возможно из-за того что не был установлен агент

Так что вариант php /home/netxms/Documents/sms/sms.php '%M' 'NOMER' работает уже, всем спасибо!
-

Ну вообще-то оно должно работать така, как у вас сконфигурено на изначальном скриншоте.
Давайте посмотрим дебаг 7 уровня в момент запуска действия. Уровень отладки можно менять при запущенном сервере
nxadm -c "debug 7"Посмотреть текущий уровень можно так:
nxadm -c "debug"
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login