Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support (Russian)
  3. Выполнение команды на сервере (Linux)

Выполнение команды на сервере (Linux)

Scheduled Pinned Locked Moved Support (Russian)
6 Posts 3 Posters 14.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M
    M
    mOba
    wrote on last edited by
    #1

    Добрый день  😉

    Помогите разобраться с действием: Выполнение команды на сервере

    У меня есть php скрипт для отправки SMS (/home/netxms/Documents/sms/sms.php) в него я передаю два параметра arg1(Текст СМС) и arg2(Телефон). Сделал действие как на скриншоте:

    php /home/netxms/Documents/sms/sms.php '%M' 'NOMER'

    Но ничего не выполняется, смс не приходит, через консоль сервера этот скрипт отрабатывает и смс летит.

    В документации не очевидно написано, можно ли так выполнять или нет. Подскажите смогу ли я вообще такое реализовать?


    Аннотация 2020-06-16 093212.png

    1 Reply Last reply
    0
    • F
      F
      Filipp Sudanov
      wrote on last edited by
      #2

      Нужно проверить, но скорее всего на windows действия запускаются через вызов CreateProcess(), в этом случае файл ищется в path, но расширение автоматом не подставляется. Попробуейте php.exe или если не поможет, то написать его с полным путем.

      1 Reply Last reply
      0
      • M
        M
        mOba
        wrote on last edited by
        #3

        У меня Linux (в шапке темы указано  😎 )
        Получилось вызывать скрипт вот такой командой:

        nxget localhost Test_SMS '%m %n' 'NOMER'

        где Test_SMS - это в файле nxagentd.conf строка ExternalParameterShellExec = Test_SMS:php /home/netxms/Documents/sms/sms.php для вызова скрипта.

        Но проблема что не передаётся в скрипт параметры. Как сделать подскажите передачу параметров ошибки и номера телефона?

        1 Reply Last reply
        0
        • V
          V
          Victor Kirhenshtein
          wrote on last edited by
          #4

          Для ExternalParameterShellExec подстановку параметров можно делать через $1, $2, и т.д. Например

          ExternalParameterShellExec = Test_SMS:php /home/netxms/Documents/sms/sms.php "$1" "$2"

          Серверная команда тоже должна работать. Посмотрите лог сервера на уровне 5 - должны быть записи вида "Executing command ..." и "RunCommandThread: failed to execute command ..." при ошибке.

          1 Reply Last reply
          0
          • M
            M
            mOba
            wrote on last edited by
            #5

            @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' работает уже, всем спасибо!

            1 Reply Last reply
            0
            • F
              F
              Filipp Sudanov
              wrote on last edited by
              #6

               😎

              Ну вообще-то оно должно работать така, как у вас сконфигурено на изначальном скриншоте.

              Давайте посмотрим дебаг 7 уровня в момент запуска действия. Уровень отладки можно менять при запущенном сервере
              nxadm -c "debug 7"

              Посмотреть текущий уровень можно так:
              nxadm -c "debug"

              1 Reply Last reply
              0

              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
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              Powered by NodeBB Contributors
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups