Pull to refresh

Comments 13

Спасибо за статью. По поводу ошибок не знаю, но вот на Powershell скрипты точно были бы проще и понятнее.
Ну не знаю куда уж проще cmd имхо ) На powershell кода было бы больше
Спасибо, статья интересная и подробно описана.
Есть одна оговорка. SMART для дисков за контроллером в некотором случае получить можно. Для этого есть ключ "-d". Тут лучше сказать, что за контроллером чаще всего стоят SAS диски, у которых вывод SMART упрощенный.
Очень круто! А можно шаблон?
Без проблем. Позже скину
UFO just landed and posted this here
А для чего вывод скрипта DiskInfoGenerationJSON.cmd перенаправлять в файл? Почему его сразу не использовать как discovery script?
В вашем случае нет динамического автообнаружения новых дисков/удаления старых, т.к. disks.cmd один раз сформировали и всё.
Конечно можно и так. Только если мы не хотим отслеживать замену без нашего ведома (утащю ка я диск по тихому). Иначе создаётся отдельный ключ и добавляется в папку scripts то что вы предложили. Данные обновляемого списка сравниваются с disks.cmd. Если данные отличаются — создаётся триггер и по проблеме удалённо запускается DiskInfoGenerationJSON.cmd. Мы обновили список дисков и имеем доказательную базу замены/удаления. К сожалению всё в одно статье не описать. Поэтому приведены только основы для творчества.
Потрясающий материал и впечатляющий объем проделанной работы. Как раз возникла потребность реализовать данное решение.
Не затруднит ли вас выложить готовый архив с шаблоном и готовыми скриптами заббикс-агента.
Добавил ссылку в конец статьи.
Немного извращенного кода)))
@echo off
set tmpfile=c:\zabbix_station\scripts\disks_tmp.cmd
echo @echo off > %tmpfile%
echo echo {"data": >> %tmpfile%
echo echo [ >> %tmpfile%
for /F "tokens=1,3" %%a in ('"C:\Program Files\smartmontools\bin\smartctl.exe" --scan') ^
do (for %%s in ("Device Model" "Product") ^
do (for /F "tokens=2*" %%c in ('C:\"Program Files"\smartmontools\bin\smartctl.exe -i %%a -d %%b ^| find %%s ') ^
do (for %%i in ("Serial Number") do (for /F "tokens=3*" %%k in ('C:\"Program Files"\smartmontools\bin\smartctl.exe -i %%a -d %%b ^| find %%i ') ^
do echo echo {"{#DISKPORT}":"%%a","{#DISKTYPE}":"%%b","{#DISKMODEL}":"%%d","{#DISKSN}":"%%k"},>> %tmpfile%))))
echo echo {"{#SMARTV}":"Smartctl 6.5"}>> %tmpfile%
echo echo ] >> %tmpfile%
echo echo } >> %tmpfile%
echo exit >> %tmpfile%
start cmd /C "ping -n 2 127.0.0.1 > nul && del %tmpfile%"
%tmpfile%
Sign up to leave a comment.

Articles