Ad Widget

Collapse

Проблемы с мониторингом S.M.A.R.T и температуры HDD на Windows 7 x64

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • DenFix26
    Member
    • Oct 2018
    • 35

    #1

    Проблемы с мониторингом S.M.A.R.T и температуры HDD на Windows 7 x64

    Всем привет! По инструкции (нашел в интернете) сделал получение данных о состоянии HDD на сервер zabbix с помощью gsmartcontrol
    1. Установить ПО gsmartcontrol
    2. Настроить Zabbix Agent, добавив строчку в zabbix_agentd.conf:
    UserParameter=HDD[*],@echo off && for /F "Tokens=10" %A In ('C":\Program Files (x86)\GSmartControl\smartctl.exe" -A /dev/$1 ^| find /I "$2"') Do echo %A

    на машинах с windows xp работает на отлично, а на Windows 7 x64 ошибка Received value [] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]

    где отследить какие данные приходят на сервер?
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Если на Windows 7 x64 ставился 64-bit Installer, то путь в UserParameter должен быть другой, без (x86)​​​​​​​.

    Comment

    • DenFix26
      Member
      • Oct 2018
      • 35

      #3
      Originally posted by Semiadmin
      Если на Windows 7 x64 ставился 64-bit Installer, то путь в UserParameter должен быть другой, без (x86).
      Да с этим проблем нет, всё поправил. Ошибка в том что данные не приходят?
      Last edited by DenFix26; 25-02-2019, 10:06.

      Comment

      • Semiadmin
        Senior Member
        • Oct 2014
        • 1625

        #4
        А просто в консоли smartctl.exe данные выводит?

        Comment

        • DSV12
          Senior Member
          Zabbix Certified Specialist
          • Nov 2018
          • 156

          #5
          Я понимаю, все из одного источника копировали, но вопрос по существу: зачем у вас в командной строке два '&&' после "@echo off" ? Для разделения команд (несколько команд в одну строку) вендовому cmd достаточно одиночного '&'. Два амперсанда - это логическое И. Вы уверены, что 'echo off' выдаёт именно 'success' в коде выхода ?:
          Code:
          [I]commandA[/I] [B]&[/B] [I]commandB[/I] Run [I]commandA[/I] and then run [I]commandB[/I]
          [I]commandA[/I] [B]&&[/B] [I]commandB[/I] Run [I]commandA[/I], if it succeeds then run [I]commandB[/I]
          [I]commandA[/I] [B]||[/B] [I]commandB[/I] Run [I]commandA[/I], if it fails then run [I]commandB[/I]
          Ну и попробуйте, как вам выше уже посоветовали, просто в строку выполнить ваши команды:
          Code:
          echo off & for /F "Tokens=10" %A In ('C":\Program Files\GSmartControl\smartctl.exe" -A /dev/$1 ^| find /I "$2"') Do echo %A
          подставив, естественно, вместо $1 и $2 реальные значения.

          Кстати, вместо убогого find рекомендую использовать (штатный) вендовый findstr - это практически grep, портированный на win.

          UPD: и ещё важный момент забыл - когда '%' используется не в командной строке, а в командном файле, его нужно писать сдвоенным, т.е.:
          Code:
          UserParameter=HDD[*],@echo off & for /F "Tokens=10" %%A In ('C":\Program Files (x86)\GSmartControl\smartctl.exe" -A /dev/$1 ^| find /I "$2"') Do echo %%A
          Last edited by DSV12; 25-02-2019, 11:31.

          Comment

          • DenFix26
            Member
            • Oct 2018
            • 35

            #6
            Originally posted by Semiadmin
            А просто в консоли smartctl.exe данные выводит?
            К сожалению нет... Вот такая ошибка

            C:\Program Files\GSmartControl>smartctl -a /dev/sda
            smartctl 6.6 2017-11-05 r4594 [x86_64-w64-mingw32-win7-sp1] (sf-6.6-1)
            Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

            Read Device Identity failed: Input/output error

            A mandatory SMART command failed: exiting. To continue, add one or more '-T perm
            issive' options.

            Comment

            Working...