Ad Widget

Collapse

Неправильное отображение результатов пользовательского параметра

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pivnoydvor
    Junior Member
    • Apr 2018
    • 1

    #1

    Неправильное отображение результатов пользовательского параметра

    Добрый день! Возникла проблема при получении данных с помощью пользовательского параметра в Zabbix 2.4:
    На днях приобрели USB термометр BM1707 для контроля температуры в серверной, подключили, всё работает. Утилита по заданному интервалу сохраняет данные с температурой в файл BM1707.temp в папке с утилитой следующего содержания:

    [30.04.2018 17:52:53]> SENSOR=16,2500

    Помимо этого утилита ведёт ещё полный лог собираемых данных, но в данной ситуации он не нужен.
    Текущую температуру я пытаюсь забрать батником из этого файла:

    echo off
    set /p temper=< C:\Termometr\BM1707.temp
    set temper=%temper:~30,-4%
    echo %temper%

    На том же сервере (Windows 2008) батник выполняется без проблем и показывает температуру числом (например 17 или 16,5), но Zabbix при получении показывает в последних значениях
    set temper=%temper:~30,-4% ?த???????

    Менял кодировки на 1251, 866, 65001 - ничего не помогает. При том при всём рядом лежит батник по сбору температуры с процессора и всё работает, в Zabbix'е отображается просто конкретное число:
    echo off
    for /F "usebackq tokens=7-10" %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport .exe`) do echo %%b %%c %%d| find "/intelcpu/0/temperature/0">nul && set temper=%%a
    echo %temper%

    Прошу помочь разобраться с проблемой, заранее спасибо!
    Starts
    30-04-2018
    Ends
    30-04-2018
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Не берусь судить о том, почему криво работает ваш батник, но даже если бы он отработал нормально, значения типа 16,5 Zabbix не устроили бы, т.к. он не понимает запятую в качестве разделителя.
    Попробуйте что-нибудь типа этого:

    echo off
    setlocal enabledelayedexpansion
    for /f "tokens=2 delims==" %%a in (C:\Termometr\bm1707.temp) do (
    set t=%%a
    echo !t:,=.! )

    Comment


    • pivnoydvor
      pivnoydvor commented
      Editing a comment
      Спасибо! Вы оказались правы и неправы одновременно ) Батник отрабатывал нормально, даже если он выводил только целую часть (например 15, 16 или 17 градусов) zabbix всё равно принимал данные криво, и не важно какие данные указывали, числовые целые, числовые с точкой или текст... Благодарю за ваше решение!
Working...