Ad Widget

Collapse

Удаленный запуск bat файла

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Georg
    Junior Member
    • Jan 2022
    • 14

    #1

    Удаленный запуск bat файла

    Добрый день.

    Подскажите пожалуйста, как правильно создать метрику с бат файлом.
    Создал батник, результат скрипта вывод на экран результата, он должен в последствии уйти на почту
    Удаленная машина на винде. В конфиге агенте указал UserParameter=rep_report, C:\script\rep.bat + удаленные команды разрешил
    В самом забиксе в элементе данных прописал имя, активный агент, ключ указал rep_report. Данные не собираются.
    Попробовал вывести в файл и считать через ключ vfs.file.contents[c:\script\rep.txt,CP866], также данные не собирает
    Попробовал модернизировать батник

    FOR /F "tokens=2 delims=={}" %%A IN ('C:\Program Files\Python310\python.exe C:\script\second.py -m 60 -d C:\FTP_OUT') DO (
    echo %%A
    )
    без результатно. Изначально строчка в батнике выглядит так
    echo off
    C:\Program Files\Python310\python.exe C:\script\second.py -m 60 -d C:\FTP_OUT

    Подскажите куда копать?
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Надеюсь, агента перезапустили после внесения изменений в конфиг-файл?
    Тогда в первую очередь - проверить со стороны сервера Zabbix утилитой zabbix_get, что отвечает агент при запросе указанной метрики.
    Стандартная проблема - неучитывание времени работы батника: когда батник работает несколько секунд, то превышается тайм-аут по умолчанию (3-4 секунды, в зависимости от версии агента).

    Comment

    • Georg
      Junior Member
      • Jan 2022
      • 14

      #3
      Конечно и не один раз. Даже Виртуалку ребутал.
      Выдал это:
      "C:\Program" ▒▒ ▒▒▒▒ ▒▒▒▒७▒▒▒ ▒▒▒ ▒▒▒譥▒
      ▒▒▒▒▒▒▒▒, ▒ᯮ▒▒塞▒▒ ▒ணࠬ▒▒▒ ▒▒▒ ▒▒▒▒▒▒ 䠩▒▒▒.
      Игрался с кодировкой нужной не нашел.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Originally posted by Georg
        Конечно и не один раз. Даже Виртуалку ребутал.
        Выдал это:
        "C:\Program" ▒▒ ▒▒▒▒ ▒▒▒▒७▒▒▒ ▒▒▒ ▒▒▒譥▒
        ▒▒▒▒▒▒▒▒, ▒ᯮ▒▒塞▒▒ ▒ணࠬ▒▒▒ ▒▒▒ ▒▒▒▒▒▒ 䠩▒▒▒.
        Игрался с кодировкой нужной не нашел.
        Понятно. Так у вас сам скрипт (безо всякого агента) не работает - ругается, что не нашёл программы по имени "C:\Program", т.к. дальше идёт пробел.
        Попробуйте в скрипте полное имя запускаемого EXE-шника обрамить двойными кавычками.
        А ругается, небось, по-русски в какой-то из 8-битных кодировок (либо Windows-1251, либо CP-866), но однозначно не в UTF-8 (как ожидает агент Zabbix).

        Comment

        • vladimir_lv
          Senior Member
          • May 2022
          • 240

          #5
          Если мне правильно помнится, то в батниках лучше использовать формат 8.3. Строка запуска должна выглядеть как-то так:
          C:\PROGRA~1\Python310\python.exe C:\script\second.py -m 60 -d C:\FTP_OUT

          Comment

          • teddy
            Senior Member
            • Dec 2017
            • 234

            #6
            Originally posted by Georg
            Добрый день.

            Подскажите пожалуйста, как правильно создать метрику с бат файлом.
            Создал батник, результат скрипта вывод на экран результата, он должен в последствии уйти на почту
            Удаленная машина на винде. В конфиге агенте указал UserParameter=rep_report, C:\script\rep.bat + удаленные команды разрешил
            В самом забиксе в элементе данных прописал имя, активный агент, ключ указал rep_report. Данные не собираются.
            Попробовал вывести в файл и считать через ключ vfs.file.contents[c:\script\rep.txt,CP866], также данные не собирает
            Попробовал модернизировать батник

            FOR /F "tokens=2 delims=={}" %%A IN ('C:\Program Files\Python310\python.exe C:\script\second.py -m 60 -d C:\FTP_OUT') DO (
            echo %%A
            )
            без результатно. Изначально строчка в батнике выглядит так
            echo off
            C:\Program Files\Python310\python.exe C:\script\second.py -m 60 -d C:\FTP_OUT

            Подскажите куда копать?
            1. изменить батник на
            echo off
            "C:\Program Files\Python310\python.exe" C:\script\second.py -m 60 -d C:\FTP_OUT

            2. Все то что в итоге выведет на екран ваш батник - это и пойдет в метрику. Т..е батник выводит строку текста - то именно она попадет в item типа текст. и с кодировкой надо разбираться когда вывод увидит zabbix_get. Скорее всего забикс ждет UTF8 для кирилицы.

            Comment

            • Georg
              Junior Member
              • Jan 2022
              • 14

              #7
              Originally posted by teddy

              1. изменить батник на
              echo off
              "C:\Program Files\Python310\python.exe" C:\script\second.py -m 60 -d C:\FTP_OUT
              Пробовал так. Даже в последних данных выгляди плохо

              Originally posted by teddy
              2. Все то что в итоге выведет на екран ваш батник - это и пойдет в метрику. Т..е батник выводит строку текста - то именно она попадет в item типа текст. и с кодировкой надо разбираться когда вывод увидит zabbix_get. Скорее всего забикс ждет UTF8 для кирилицы.
              Кодировка уже не принципиально, там есть нужные цифры

              Comment

              Working...