Запуск smartctl на всех дисках сервера

Мой вопрос довольно простой, я хочу запустить команду smartctl -i -A на всех дисках, которые есть у сервера. Подумайте, что у меня слишком много серверов с различным количеством дисков и RAID-контроллеров, тогда мне нужно отсканировать все драйверы для диагностики. Я думаю о запуске smartctl --scan | awk '{print $1}' >> test.log smartctl --scan | awk '{print $1}' >> test.log , поэтому, если я открою test.log, у меня будет информация о всех дисках.
После этого мне нужно запустить некоторые конструкции if или do для сканирования с помощью smartctl всех драйверов. Я не знаю, подходит ли это для этого, так как мне нужно также определить RAID-контроллер. Am заголовок в правильном направлении?

Редактировать:

Я использую эти команды для устранения неполадок:

Без RAID-контроллера

 for i in {c..d}; do echo "Disk sd$i" $SN $MD smartctl -i -A /dev/sd$i |grep -E "^ "5"|^"197"|^"198"|"FAILING_NOW"|"SERIAL"" done 

Контроллер PERC

 for i in {0..12}; do echo "$i" $SN $MD smartctl -i -A -T permissive /dev/sda -d megaraid,$i |grep -E "^ "5"|^"197"|^"198"|"FAILING_NOW"|"SERIAL"" done /usr/sbin/megastatus –physical /usr/sbin/megastatus --logical 

Контроллер 3ware

 for i in {0..10}; do echo "Disk $i" $SN $MD smartctl -i -A /dev/twa0 -d 3ware,$i |grep -E "^ "5"|^"197"|^"198"|"FAILING_NOW"|"SERIAL"" done 

SmartArray & Megaraid Controler:

 smartctl –a –d cciss,0 /dev/cciss/c0d0 /opt/3ware/9500/tw_cli show cd /tmp 

DD (переписать блок диска (DESTROY DATA)):

 dd if=/dev/zero of=/dev/HD* bs=4M HD*: sda, sdb… 

Burning (стресс-тест (DESTROY DATA)):

 /opt/systems/bin/vs-burnin --destructive --time=<hours> /tmp/burninlog.txt 

Dmesg & kernerrors:

 tail /var/log/kernerrors dmesg |grep –i –E “”ata”|”fault”|”error” 

Поэтому я пытаюсь автоматизировать эти команды.
Я хочу, чтобы скрипт подтвердил все диски, которые есть у хоста, и запустил соответствующую команду smartctl для этого случая.
Что-то вроде меню с некоторыми параметрами, которые позволяют мне выбирать, хочу ли я запускать smartctl или какую-то деструктивную команду, если я smartctl запустить smartctl
скрипт сканирует все диски и запускает команду в соответствии с конфигурацией хоста (с / без RAID-контроллера),
и если я захочу запустить деструктивную команду, скрипт попросит меня поместить номер диска, который я хочу сделать.


Изменить 2:

Я решил проблему со следующим скриптом:

 #!/bin/bash # Troubleshoot.sh # A more elaborate version of Troubleshoot.sh. SUCCESS=0 E_DB=99 # Error code for missing entry. declare -A address # -A option declares associative array. if [ -f Troubleshoot.log ] then rm Troubleshoot.log fi if [ -f HDs.log ] then rm HDs.log fi smartctl --scan | awk '{print $1}' >> HDs.log lspci | grep -i raid >> HDs.log getArray () { i=0 while read line # Read a line do array[i]=$line # Put it into the array i=$(($i + 1)) done < $1 } getArray "HDs.log" for e in "${array[@]}" do if [[ $e =~ /dev/sd* || $e =~ /dev/hd* ]] then echo "smartctl -i -A $e" >> Troubleshoot.log smartctl -i -A $e >> Troubleshoot.log # Run smartctl into all disks that the host have fi done exit $? # In this case, exit code = 99, since that is function return. 

Я не знаю, является ли это решение правильным или лучшим, но работает для меня!
Цените всю помощь!

One Solution collect form web for “Запуск smartctl на всех дисках сервера”

Поэтому я пытаюсь автоматизировать эти команды.

Это уже существует и проявляется в smartd .

Обычно вам нужно настроить желаемое поведение в /etc/smartd.conf

Пример:

 # DEVICESCAN: tells smartd to scan for all ATA and SCSI devices # Alternative setting to report more useful raw temperature in syslog. DEVICESCAN -I 194 -I 231 -I 9 

Вы также можете явно указать свои диски

 /dev/sdc -d 3ware,0 -a -s L/../../7/01 

Если smartd обнаружит ошибку, вы получите электронное письмо:

 /dev/hdc -a -I 194 -W 4,45,55 -R 5 -m admin@example.com 

Существует также ряд других опций и переключателей, вам нужно будет прочитать man- smartd.conf .

  • Скрипт для распознавания жестких дисков и запуск Smartctl
  • Какой текст будет выводиться smartctl, когда диск не является работоспособным
  • инструмент производителя обнаружил плохие блоки, но smartctl не показывает никаких
  • SMART расширенная автономная проверка работоспособности
  • Ошибки жесткого диска
  • Проверка работоспособности жесткого диска
  • Не удается заставить smartctl работать
  • Где получить информацию о неисправном диске?
  • Как стереть или записать нули на жесткий диск с помощью / dev / sg2
  • Система файлов становится чистой только для чтения; как отладить это?
  • ext4: поврежден блок заблокирован, но этот диск умирает?
  • Как интерпретировать это показание smartctl
  • Interesting Posts

    Многопользовательские привилегии Homebrew

    Как скрывать меню загрузки grub, если не нажимать shift?

    Запускать скрипт как root во время загрузки и отображения в терминале linux по умолчанию?

    seq – неверная ошибка аргумента с плавающей запятой

    Как получить объем виртуального хранилища процесса непрерывно?

    Сценарий Bash, чтобы найти и убить процесс с определенными аргументами?

    vim команды разных категорий и обозначений

    Установка гостевых дополнений CentOS 64 (гость), Win 8 (хост)

    Как разрешить 'netlink: осталось 12 байтов после разбора атрибутов.' в syslog на Red Hat Enterprise Linux 6.5?

    Как я должен обрабатывать shebang при написании моей собственной оболочки?

    Вывести команду сервера из openssl?

    Почему uniq может игнорировать ведущие символы, но не заканчивать символы?

    Crunchbang не видит существующей установки Ubuntu

    Понимание использования Inode NTFS-3g

    Показывать запущенные процессы с именами файлов?

    Linux и Unix - лучшая ОС в мире.