Скрипт + Шаблон LLD-SSH Для проверки Жестких Дисков по SMART HDD SSD через smartmontools

Мониторинг Железа
Датчики температур
Кулера
Диски
Напряжение
и т.д.
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

Скрипт + Шаблон LLD-SSH Для проверки Жестких Дисков по SMART HDD SSD через smartmontools

Сообщение Артём Мамзиков »

Это изменый скрипт + шаблон из Обновленный Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD SSD через smartmontools

Подключение к Узлу будет происходить не через zabbix Агента (zabbix_get) , а через SSH.
Агент и траппер zabbix используется только не посредственно на самом заббикс сервере.

Данный шаблон разрабатывался для NAS D-Link dns-340l так как по snmp не было возможности проверять smart.

В зависимости от версий smartmontools Опции могут меняться видимо на NAS более старая версия и пришлось изменить следующие опции:
smartctl --scan-open заменена на ls -l /dev/
smartctl -x /dev/ заменена на smartctl -Hi /dev/
smartctl -x /dev/ заменена на smartctl -AHi /dev/

Так как скрипт выполняется более 30 секунд получаем ошибку timeout , по этому данные будет отправлять траппером.

СКАЧАТЬ
Проверка HDD SSD Дисков по SMART по SSH.zip
Проверка HDD SSD Дисков по SMART по SSH.zip
(83.98 КБ) 17 скачиваний
Команды проверки

Код: Выделить всё

./smartctl-lld-ssh.sh 192.168.xxx.xxx 22 "discoveryhdd" "" "Логин" "Пароль" "Имя узла"
./smartctl-lld-ssh.sh 192.168.xxx.xxx 22 "info" "" "Логин" "Пароль" "Имя узла"
./external-nowait.sh smartctl-lld-ssh.sh 192.168.xxx.xxx 22 "discoveryhdd" "" "Логин" "Пароль" "Имя узла"
./external-nowait.sh smartctl-lld-ssh.sh 192.168.xxx.xxx 22 "info" "" "Логин" "Пароль" "Имя узла"
Скрипт smartctl-lld-ssh.sh

Код: Выделить всё

#!/bin/bash

# 2023.03.17 Артём Андреевич Мамзиков
# URL https://diyit.ru/viewtopic.php?t=1944
# Скрипт мониторинга HDD с LLD для Zabbix (серверный вариант) через ssh

# Авто обнаружение дисков

# Объявим входные переменные(variable) и если входная переменная пустая задаем дефолтные настройки для некоторых переменных
IP=$1
PORT=${2:-22}
BLOCSCRIPT=$3
#DISKNAME=$4
# Переменные логина пароля
USER=$5
PASS=$6
HOSTHOST=$7
IPZBXSERVER=localhost

# Подключение к ssh, выполнение команды получение данных с удаленного узла
function sshremote (){
infodisk=$(/usr/bin/expect<<EOF
# spawn - вызов программы
# expect - ожидание вывода запущенной программой строки (дословно: ожидаем, что скажет выполняемая программа);
# send - передача данных или команд в вызванную программу (выполняется так, как будто вы сами набираете команды в консоли)
# close - завершение сценария
set timeout 3
# Подключаемся по ssh
spawn ssh -oHostKeyAlgorithms=+ssh-dss -p $PORT $USER@$IP
# Если выходит запрос подтверждаем yes
  expect {
  "(yes/no)?*" {
  send "yes\r"
 }
 }
# Ждем строку запроса пароля password:
  expect "word:"
# Водим пароль
  send "$PASS\r"
# Ждем строку для ввода команд от root #
  expect "#*"
  expect "#*"
# Получаем список дисков
  send "$1\r"
# Время ожидания установки
set timeout 1
# Проверяем что перешли в папку root
  expect "#*"
  expect eof
# Выполняем выход из сеанса
  send "exit\r"
EOF
)
#exit 1
}

# Получение инфы (по ключевым словам)
searchp="Model Family:|Device Model:|Serial Number:|LU WWN Device Id:|Firmware Version:|User Capacity:|Sector Size:|Rotation Rate:|ATA Version is:|SATA Version is:|SMART overall-health self-assessment test result:"

IFS=$'\n'
# (IFS оболочка считает, что пробел является границей слов делает пробелы между слов $* - отбрасывает символы и границы слов \n – это escape-последовательность для новой строки (переводится в новую строку)

if [[ $BLOCSCRIPT = "discoveryhdd" ]]
then
echo "Запущен блок discoveryhdd"
# Запускаем команду smartctl --scan-open |и ищем строки содержащие /dev/sd и передаем всё в переменную get
#get=`zabbix_get -s $IP -p $PORT -k system.run["smartctl --scan-open"] | grep "/dev/sd"`
# Получим список Дисков с удаленного Узла по ssh
listdisk="ls -l /dev | grep -E 'sd|hd'|awk '{print $\(NF\)}'"
# Вызовем блок подключения shh и выполним команды
sshremote "$listdisk"
# Полученный ответ
get=$(echo "${infodisk}"|sed '1,/^\/ # ls -l/d'|sed -e '/\/ #/d'|egrep -owi '[a-z]+')
# Запускаем Цикл из переменной get
for hdd in $get
do
# получаем переменную DISK = Данные переменной get| ищем строки содержащие /dev/sd | вывести значение после /dev/ | оставляем первые 3 значение остальное убираем
#DISKID=`echo $hdd | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3`
DISKID=`echo $hdd`
    # После того как мы получили переменные для DISKID подставляем их (пример sda sdb)
    # Включен SMART? на Дисках с удаленного Узла по ssh
    statussmart=`echo "smartctl -i /dev/$hdd|egrep -i 'SMART support is:|Rotation Rate:'"`
    # Вызовем блок подключения shh и выполним команды
    sshremote "$statussmart"
    # Полученный ответ
    smarton=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d')
    # Проверяем что включен smart на данном диске и диск ssd ищем строки SMART support is: Enabled и Rotation Rate: Solid State Device если строки найдены, на выходе получим их ответ не пустой условие не выполняется != "" , продолжим выполнение скрипта. 
    # Если хотя бы 1 строка не найдена ответ будет пустым, условие != "" выполняется скрипт будет завершен.
    # В условии запрашиваем данные диска smartctl -i /dev/***|выбираем 2 строки| удаляем перенос строки делаем 1 строкой| удаляем весь вывод если есть строка Solid State Device и завершение скрипта, если строки нет выполняем дальше| проверка что смарт включен, если строка найдена продолжаем.
#    if [[ `zabbix_get -s $IP -p $PORT -k system.run["smartctl -i /dev/$DISKID"]|grep -E "SMART support is:|Rotation Rate:"|tr -d "\r\n"|sed '/.*Rotation Rate:.*Solid State Device.*/d' | grep "SMART support is: Enabled"` != "" ]]
    if [[ `echo "${smarton}"|grep -E "SMART support is:|Rotation Rate:"|tr -d "\r\n"|sed '/.*Rotation Rate:.*Solid State Device.*/d' | grep "SMART support is: Enabled"` != "" ]]
    then
    # Подстановка имен диска sda sdb и  т.д.
    #DISKN=$DISKN"$SEP\n{\"{#IDNUM0}\":\"$DISKID\"}"
    #SEP=", "
        # Поддерживаемые атрибуты на Дисках с удаленного Узла по ssh
        attrsmart=`echo "smartctl -A /dev/$hdd|sed -r 's/^ *//g'|egrep -io '\(^\[0-9\]+\[: :\]+\[A-Z_-\]+\)'"`
        # Вызовем блок подключения shh и выполним команды
        sshremote "$attrsmart"
        # Полученный ответ
        IDATR=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d'|tr -d '\r')
	 # Запросим поддерживаемые атрибуты диском, для создания элементов |удалить пробелы вначале |строки содержащие в начале цифры первый столбец и второй с помощью регулярки для сохранения количества пробелов
#	IDATR=`zabbix_get -s $IP -p $PORT -k system.run["smartctl -A /dev/"${DISKID}""]|sed -r 's/^ *//g'|grep -Eo "(^[0-9]+\s+[A-Za-z_-]+)"`
	for ATRIB in $IDATR
	do
	# Код ID Диска | только числовое значение
	IDNUM=$(echo $ATRIB|awk '{print $1}'|egrep -o '[0-9]+')
	# Атрибут кода диска и id $ATRIB
	# Собираем вывод
	DISKN=$DISKN"$SEP\n{\"{#IDNUM$IDNUM}\":\"$DISKID:$IDNUM\", \"{#ATRIB}\":\"$DISKID:$ATRIB\"}"
	SEP=", "
	done
        # Инфо о Дисках с удаленного Узла по ssh
        infosmart=`echo "smartctl -Hi /dev/$hdd"`
        # Вызовем блок подключения shh и выполним команды
        sshremote "$infosmart"
        # Полученный ответ
        infodiskx=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d'|grep -aiE "$searchp"|grep -o '^[^:]*:')
	# Информация о диске выбор строк |Поиск строк| вывод до двоеточия
#	infodiskx=$(zabbix_get -s $IP -p $PORT -k system.run["smartctl -x /dev/"${DISKID}""]|grep -aE "$searchp"|grep -o '^[^:]*:')
	for infodiska in $(echo "${infodiskx}"|tr -d '\r')
	do
	# Чтоб не создавать 2 правило обнаружения, сделаем зависимость на 1 элемент и приведем макрос к единому виду {#IDNUM***}
	ACCORDANCE="" # сброс переменной в цикле
	# верхний регистр для макроса lld
	infodiskz=$(echo $infodiska|tr [:lower:] [:upper:])
	case $infodiskz in
	    *"MODEL FAMILY:"*)
	    ACCORDANCE="9000"
	    ;;
	    *"DEVICE MODEL:"*)
	    ACCORDANCE="9001"
	    ;;
	    *"SERIAL NUMBER:"*)
	    ACCORDANCE="9002"
	    ;;
	    *"LU WWN DEVICE ID:"*)
	    ACCORDANCE="9003"
	    ;;
	    *"FIRMWARE VERSION:"*)
	    ACCORDANCE="9004"
	    ;;
	    *"USER CAPACITY:"*)
	    ACCORDANCE="9005"
	    ;;
	    *"SECTOR SIZE:"*)
	    ACCORDANCE="9006"
	    ;;
	    *"ROTATION RATE:"*)
	    ACCORDANCE="9007"
	    ;;
	    "ATA VERSION IS:"*)
	    ACCORDANCE="9008"
	    ;;
	    *"SATA VERSION IS:"*)
	    ACCORDANCE="9009"
	    ;;
	    *"SMART OVERALL-HEALTH SELF-ASSESSMENT TEST RESULT:"*)
	    ACCORDANCE="9010"
	    ;;
	    # *":"*)
	    # ACCORDANCE="9011"
	    # ;;
	esac

	DISKN=$DISKN"$SEP\n{\"{#IDNUM$ACCORDANCE}\":\"$DISKID:$infodiska\"}"
	SEP=", "
	done

    # Список имен диска в конце вывода
    # DISKNAME=$DISKNAME"$SEP\n{\"{#DISKNAME}\":\"$DISKID\"}"

    JSON="${DISKN}"
        fi
done

# Список имен диска в конце вывода
#JSON="${DISKN}""${DISKNAME}"

# Выводим результат в json
JSON="["$JSON"\n]"
#echo -e "${JSON}"
outsshhdd=$(echo -e "${JSON}")
zabbix_sender -z $IPZBXSERVER -p 10051 -s "${HOSTHOST}" -k smartlldsshhdd -o "${outsshhdd}"
fi


if [[ $BLOCSCRIPT = "discoveryssd" ]]
then
echo "Запущен блок discoveryssd"
# Запускаем команду smartctl --scan-open |и ищем строки содержащие /dev/sd и передаем всё в переменную get
#get=`zabbix_get -s $IP -p $PORT -k system.run["smartctl --scan-open"] | grep "/dev/sd"`
# Получим список Дисков с удаленного Узла по ssh
listdisk="ls -l /dev | grep -E 'sd|hd'|awk '{print $\(NF\)}'"
# Вызовем блок подключения shh и выполним команды
sshremote "$listdisk"
# Полученный ответ
get=$(echo "${infodisk}"|sed '1,/^\/ # ls -l/d'|sed -e '/\/ #/d'|egrep -owi '[a-z]+')
# Запускаем Цикл из переменной get
for hdd in $get
do
# получаем переменную DISK = Данные переменной get| ищем строки содержащие /dev/sd | вывести значение после /dev/ | оставляем первые 3 значение остальное убираем
#DISKID=`echo $hdd | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3`
DISKID=`echo $hdd`
    # После того как мы получили переменные для DISKID подставляем их (пример sda sdb)
    # Включен SMART? на Дисках с удаленного Узла по ssh
    statussmart=`echo "smartctl -i /dev/$hdd|egrep -i 'SMART support is:|Rotation Rate:'"`
    # Вызовем блок подключения shh и выполним команды
    sshremote "$statussmart"
    # Полученный ответ
    smarton=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d')
	# После того как мы получили переменные для DISKID подставляем их (пример sda sdb)
    # Проверяем что включен smart на данном диске и диск ssd ищем строки SMART support is: Enabled и Rotation Rate: Solid State Device если строки найдены, на выходе получим их ответ не пустой условие не выполняется != "" , продолжим выполнение скрипта. 
    # Если хотя бы 1 строка не найдена ответ будет пустым, условие != "" выполняется скрипт будет завершен.
    # В условии запрашиваем данные диска smartctl -i /dev/***|выбираем 2 строки| удаляем перенос строки делаем 1 строкой| через условие И смотрим что обе строки есть
#    if [[ `zabbix_get -s $IP -p $PORT -k system.run["smartctl -i /dev/$DISKID"] |grep -E "SMART support is:|Rotation Rate:"|tr -d "\r\n"| grep -E "SMART support is:\s+Enabled" |grep -E "Rotation Rate:\s+Solid State Device"` != "" ]]
    if [[ `echo "${smarton}"|grep -E "SMART support is:|Rotation Rate:"|tr -d "\r\n"| grep -E "SMART support is:\s+Enabled" |grep -E "Rotation Rate:\s+Solid State Device"` != "" ]]
    then
    # Подстановка имен диска sda sdb и  т.д.
    #DISKN=$DISKN"$SEP\n{\"{#IDNUM0}\":\"$DISKID\"}"
    #SEP=", "
        # Поддерживаемые атрибуты на Дисках с удаленного Узла по ssh
        attrsmart=`echo "smartctl -A /dev/$hdd|sed -r 's/^ *//g'|egrep -io '\(^\[0-9\]+\[: :\]+\[A-Z_-\]+\)'"`
        # Вызовем блок подключения shh и выполним команды
        sshremote "$attrsmart"
        # Полученный ответ
        IDATR=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d'|tr -d '\r')
	 # Запросим поддерживаемые атрибуты диском, для создания элементов |удалить пробелы вначале |строки содержащие в начале цифры первый столбец и второй с помощью регулярки для сохранения количества пробелов
#	IDATR=`zabbix_get -s $IP -p $PORT -k system.run["smartctl -A /dev/"${DISKID}""]|sed -r 's/^ *//g'|grep -Eo "(^[0-9]+\s+[A-Za-z_-]+)"`
	for ATRIB in $IDATR
	do
	# Код ID Диска | только числовое значение
	IDNUM=$(echo $ATRIB|awk '{print $1}'|egrep -o '[0-9]+')
	# Атрибут кода диска и id $ATRIB
	# Собираем вывод
	DISKN=$DISKN"$SEP\n{\"{#IDNUM$IDNUM}\":\"$DISKID:$IDNUM\", \"{#ATRIB}\":\"$DISKID:$ATRIB\"}"
	SEP=", "
	done
        # Инфо о Дисках с удаленного Узла по ssh
        infosmart=`echo "smartctl -Hi /dev/$hdd"`
        # Вызовем блок подключения shh и выполним команды
        sshremote "$infosmart"
        # Полученный ответ
        infodiskx=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d'|grep -aiE "$searchp"|grep -o '^[^:]*:')
	# Информация о диске выбор строк |Поиск строк| вывод до двоеточия
#	infodiskx=$(zabbix_get -s $IP -p $PORT -k system.run["smartctl -x /dev/"${DISKID}""]|grep -aE "$searchp"|grep -o '^[^:]*:')
	for infodiska in $(echo "${infodiskx}"|tr -d '\r')
	do
	# Чтоб не создавать 2 правило обнаружения, сделаем зависимость на 1 элемент и приведем макрос к единому виду {#IDNUM***}
	ACCORDANCE="" # сброс переменной в цикле
	# верхний регистр для макроса lld
	infodiskz=$(echo $infodiska|tr [:lower:] [:upper:])
	case $infodiskz in
	    *"MODEL FAMILY:"*)
	    ACCORDANCE="9000"
	    ;;
	    *"DEVICE MODEL:"*)
	    ACCORDANCE="9001"
	    ;;
	    *"SERIAL NUMBER:"*)
	    ACCORDANCE="9002"
	    ;;
	    *"LU WWN DEVICE ID:"*)
	    ACCORDANCE="9003"
	    ;;
	    *"FIRMWARE VERSION:"*)
	    ACCORDANCE="9004"
	    ;;
	    *"USER CAPACITY:"*)
	    ACCORDANCE="9005"
	    ;;
	    *"SECTOR SIZE:"*)
	    ACCORDANCE="9006"
	    ;;
	    *"ROTATION RATE:"*)
	    ACCORDANCE="9007"
	    ;;
	    "ATA VERSION IS:"*)
	    ACCORDANCE="9008"
	    ;;
	    *"SATA VERSION IS:"*)
	    ACCORDANCE="9009"
	    ;;
	    *"SMART OVERALL-HEALTH SELF-ASSESSMENT TEST RESULT:"*)
	    ACCORDANCE="9010"
	    ;;
	    # *":"*)
	    # ACCORDANCE="9011"
	    # ;;
	esac

	DISKN=$DISKN"$SEP\n{\"{#IDNUM$ACCORDANCE}\":\"$DISKID:$infodiska\"}"
	SEP=", "
	done

    # Список имен диска в конце вывода
    # DISKNAME=$DISKNAME"$SEP\n{\"{#DISKNAME}\":\"$DISKID\"}"

    JSON="${DISKN}"
        fi
done

# Список имен диска в конце вывода
#JSON="${DISKN}""${DISKNAME}"

# Выводим результат в json
JSON="["$JSON"\n]"
#echo -e "${JSON}"
outsshssd=$(echo -e "${JSON}")
zabbix_sender -z $IPZBXSERVER -p 10051 -s "${HOSTHOST}" -k smartlldsshssd -o "${outsshssd}"
fi


# Получение информации о дисках
if [[ $BLOCSCRIPT = "info" ]]
then
echo "Запущен блок info"
# Запускаем команду smartctl --scan-open |и ищем строки содержащие /dev/sd и передаем всё в переменную get
#get=`zabbix_get -s $IP -p $PORT -k system.run["smartctl --scan-open"] | grep "/dev/sd"`
# Получим список Дисков с удаленного Узла по ssh
listdisk="ls -l /dev | grep -E 'sd|hd'|awk '{print $\(NF\)}'"
# Вызовем блок подключения shh и выполним команды
sshremote "$listdisk"
# Полученный ответ
get=$(echo "${infodisk}"|sed '1,/^\/ # ls -l/d'|sed -e '/\/ #/d'|egrep -owi '[a-z]+')
# Запускаем Цикл из переменной get
for hdd in $get
do
# получаем переменную DISK = Данные переменной get| ищем строки содержащие /dev/sd | вывести значение после /dev/ | оставляем первые 3 значение остальное убираем
#DISKID=`echo $hdd | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3`
DISKID=`echo $hdd`
    # После того как мы получили переменные для DISKID подставляем их (пример sda sdb)
    # Включен SMART? на Дисках с удаленного Узла по ssh
    statussmart=`echo "smartctl -i /dev/$hdd|egrep -i 'SMART support is:|Rotation Rate:'"`
    # Вызовем блок подключения shh и выполним команды
    sshremote "$statussmart"
    # Полученный ответ
    smarton=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d')
    # Проверяем что включен smart на данном диске ищем строку SMART support is: Enabled если ее нет ничего не выводим, при поиске по шаблону
    #внутри [!=] сравнение строк SMART support is: Enabled = SMART support is: Enabled выполняется передаем дальше.
#    if [[ `zabbix_get -s $IP -p $PORT -k system.run["smartctl -i /dev/$DISKID"] | grep "SMART support is: Enabled"` != "" ]]
    if [[ `echo "${smarton}"|grep -E "SMART support is:|Rotation Rate:"|tr -d "\r\n"|sed '/.*Rotation Rate:.*Solid State Device.*/d' | grep "SMART support is: Enabled"` != "" ]]
    then
        # Инфо о Дисках с удаленного Узла по ssh
        infosmartp=`echo "smartctl -AHi /dev/$hdd"`
        # Вызовем блок подключения shh и выполним команды
        sshremote "$infosmartp"
        # Полученный ответ
        atrbp=$(echo "${infodisk}"|sed '1,/^\/ # smartctl/d'|sed -e '/\/ #/d')
#        atrbp=`zabbix_get -s $IP -p $PORT -k system.run["smartctl -x /dev/$DISKID"]`

	# Выбор блока для смарт атрибутов| удаление пробелов вначале |в начале каждой строки добавим имя диска (для регулярки предобработки разных дисков)
	attr=$(echo "${atrbp}"|sed -n '/SMART Attributes/,/General Purpose/p'|sed -r 's/^ *//g'|sed -e "s/^/$DISKID:/")

	# Выбор блока информации
	info=$(echo "${atrbp}"|sed -n '/START OF INFORMATION SECTION/,/Local Time is/p'|sed -r 's/^ *//g'|sed -e "s/^/$DISKID:/")

	# Строка состояние смарта
	statussmart=$(echo "${atrbp}"|grep -aE "SMART overall-health self-assessment test result:"|sed -r 's/^ *//g'|sed -e "s/^/$DISKID:/")
    # Суммируем данные для каждого диска
    SMART=$SMART"\n"${attr}"\n"${info}"\n"${statussmart}""
    fi
done
outsshsmartinfo=$(echo -e "${SMART}"|grep -aEv "^$")
zabbix_sender -z $IPZBXSERVER -p 10051 -s "${HOSTHOST}" -k smartlldsshinfo -o "${outsshsmartinfo}"
fi
Скрипт для запуска через элемент данных заббикса (можно было сделать через крон, но так более универсально)
external-nowait.sh

Код: Выделить всё

#!/bin/bash

# Скрипт переадресации, для внешней проверки когда время выполнения больше 30 секунд.(Timeout while executing a shell script. попадает в статус: Не поддерживается)
# Запустим другой скрипт с аргументами и не дожидаясь его завершения отправим статус что текущий скрипт выполнен.

# Получим текущий путь откуда запущен скрипт
#currentpath=$(readlink -f $0)
#currentpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
currentpath="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
#currentpath=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)

#bash "${currentpath}/${1}" "${2}" "${3}" "${4}" "${5}" "${6}" "${7}" "${8}" "${9}" "${10}" "${11}" "${12}" "${13}" "${14}" "${15}" >/dev/null & echo "Запущен скрипт: $1"
# Через заббикс агент (на самом заббикс сервере) не дожидаясь выполнения
zabbix_get -s 127.0.0.1 -p 10050 -k system.run["'${currentpath}/${1}' '${2}' '${3}' '${4}' '${5}' '${6}' '${7}' '${8}' '${9}' '${10}' '${11}' '${12}' '${13}' '${14}' '${15}'",nowait] >/dev/null & echo "Запущен скрипт: $1"
#script /dev/null
#screen -d -m -A -S "${currentpath}/${1}" "${2}" "${3}" "${4}" "${5}" "${6}" "${7}" "${8}" "${9}" "${10}" "${11}" "${12}" "${13}" "${14}" "${15}" >/dev/null & echo "Запущен скрипт: $1"
# Тест переменных в файл
#echo "bash "${currentpath}/${1}" \"${2}\" \"${3}\" \"${4}\" \"${5}\" \"${6}\" \"${7}\" \"${8}\" \"${9}\" \"${10}\" \"${11}\" \"${12}\" \"${13}\" \"${14}\" \"${15}\"" >> /tmp/nowait.txt

Шаблон Проверка HDD SSD Дисков по SMART по SSH
Проверка HDD SSD Дисков по SMART по SSH
Проверка HDD SSD Дисков по SMART по SSH
Макросы
{$DISKNAME} - имя диска если нужно указать конкретное, по умолчанию пустое определяться все диски
{$HOST.PORTS} - Порт ssh по умолчанию 22
{$LOGINSSH} - Логин ssh
{$PASSSHH} - Пароль ssh

Элементы данных
Проверка HDD SSD Дисков по SMART по SSH Элементы данных
Проверка HDD SSD Дисков по SMART по SSH Элементы данных
Обнаружение smart кодов проверки SSD дисков Запуск скрипта external-nowait.sh[smartctl-lld-ssh.sh,{HOST.CONN},{$HOST.PORTS},discoveryssd,{$DISKNAME},{$LOGINSSH},{$PASSSHH},{HOST.HOST}] 1h 0d Внешняя проверка SMART Жестких дисков SSD Деактивировано

Обнаружение smart кодов проверки дисков Запуск скрипта external-nowait.sh[smartctl-lld-ssh.sh,{HOST.CONN},{$HOST.PORTS},discoveryhdd,{$DISKNAME},{$LOGINSSH},{$PASSSHH},{HOST.HOST}] 1h 0d Внешняя проверка SMART Жестких дисков Активировано

Диск Поддерживаемые Атрибуты SMART информация SMARTCTL текст Запуск скрипта external-nowait.sh[smartctl-lld-ssh.sh,{HOST.CONN},{$HOST.PORTS},info,{$DISKNAME},{$LOGINSSH},{$PASSSHH},{HOST.HOST}] 1h 0d Внешняя проверка SMART Жестких дисков, SMART Жестких дисков SSD Активировано

Диск Поддерживаемые Атрибуты SMART информация SMARTCTL текст smartlldsshinfo 90d Zabbix траппер SMART Жестких дисков, SMART Жестких дисков SSD Активировано


Правила обнаружения
Проверка HDD SSD Дисков по SMART по SSH Правила обнаружения
Проверка HDD SSD Дисков по SMART по SSH Правила обнаружения
Обнаружение smart кодов проверки дисков Прототипы элементов данных 274 Прототипы триггеров 27 Прототипы графиков Прототипы узлов сети smartlldsshhdd Zabbix траппер Активировано

Обнаружение smart кодов проверки SSD дисков Прототипы элементов данных 274 Прототипы триггеров 27 Прототипы графиков Прототипы узлов сети smartlldsshssd Zabbix траппер Активировано
количество слов: 1736

Вернуться в «Аппаратное обеспечение Общее для всех систем»