Linux мониторинг температуры жестких дисков с помощью hddtemp
Вот отличная небольшая утилита для контроля температуры жесткого диска. Большинство современных жестких дисков компьютеров, включая SSD, поставляются с технологией SMART (технология самоконтроля, анализа и отчетности). Это система мониторинга жестких дисков компьютеров, позволяющая обнаруживать и сообщать о различных показателях надежности в надежде предвидеть сбои.
Отслеживание температуры жестких дисков с помощью hddtemp
Утилита hddtemp или smartctl сообщит вам температуру вашего жесткого диска, прочитав данные из SMART на дисках, поддерживающих эту функцию.
Только современные жесткие диски имеют датчик температуры. hddtemp также поддерживает чтение информации SMART с дисков SCSI. hddtemp может работать как простой инструмент командной строки или как демон для получения информации со всех серверов.
Как установить hddtemp в Linux
Чтобы установить hddtemp на Debian / Ubuntu Linux , используйте команду apt-get / команду apt :$ sudo apt-get install hddtemp
Примеры результатов:
Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Будут установлены следующие НОВЫЕ пакеты: hddtemp 0 обновлено, 1 установлено заново, 0 удалено и 0 не обновлено. Нужно получить 47,7 кБ архивов. После этой операции будет использовано 185 КБ дополнительного места на диске. Получите:1 http://in.archive.ubuntu.com/ubuntu bionic/universe amd64 hddtemp amd64 0.3-beta15-53 [47,7 кБ] Получено 47,7 КБ за 0 с (276 КБ/с) Предварительная настройка пакетов... Выбор ранее невыбранного пакета hddtemp. (Чтение базы данных... На данный момент установлено 166286 файлов и каталогов.) Подготовка к распаковке .../hddtemp_0.3-beta15-53_amd64.deb ... Распаковка hddtemp (0.3-beta15-53)... Настройка hddtemp (0.3-beta15-53)... Обработка триггеров для ureadahead (0.100.0-21) ... Обработка триггеров для systemd (237-3ubuntu10.24)... Обработка триггеров для man-db (2.8.3-2ubuntu0.1)...
Чтобы установить hddtemp в CentOS/RHEL/SL/Oracle Linux , запустите команду yum (сначала включите репозиторий EPEL ):$ sudo yum install hddtemp
Введите следующую команду pacman, чтобы установить hddtemp в дистрибутиве Arch Linux :$ sudo pacman -S hddtemp
Введите следующую команду dnf, чтобы установить hddtemp в Fedora. Дистрибутив Linux :$ sudo dnf install hddtemp
введите следующую команду zypper, чтобы установить hddtemp в дистрибутиве OpenSUSE Linux:$ sudo zypper install hddtemp
Связанный: Как проверить температуру процессора в OpenSUSE Linux
Примечание об установке исходного кода
Вы также можете выполнить установку исходного кода. Загрузите исходный код tar ball здесь .$ wget http://download.savannah.nongnu.org/releases/hddtemp/hddtemp-0.3-beta15.tar.bz2
Разархивируйте и установите hddtemp с помощью следующих команд: Установите базу данных температуры жесткого диска в каталог /usr/share/misc или /etc:$ tar -jxvf hddtemp-0.3-beta15.tar.bz2
$ cd hddtemp-0.3-beta15
$ ./configure
$ make
$ sudo make install
$ cd /usr/share/misc
# wget http://download.savannah.nongnu.org/releases/hddtemp/hddtemp.db
Отслеживание температуры жестких дисков с помощью hddtemp
Давайте посмотрим на использование, синтаксис и примеры команды hddtemp. Синтаксис TYPE может быть SATA, PATA или SCSI. Если опущено, hddtemp попытается угадатьhddtemp disk
hddtemp TYPE:disk
hddtemp [options] TYPE:disk
Как контролировать температуру жесткого диска в Linux?
Чтобы увидеть температуру для /dev/sda, введите следующую команду:$ hddtemp /dev/sda
Sample outputs
/dev/sda: WDC WD2500YS-01SHB1: 25°C
Приведенный выше вывод указывает, что температура моего жесткого диска составляет 25 ° C. Если температура выше 60°C , немедленно рассмотрите варианты охлаждения.
Как узнать температуру жесткого диска удаленного сервера?
По умолчанию hddtemp привязывается к порту TCP/IP 7634. ??Вам необходимо запустить hddtemp в режиме демона. Войдите на удаленный блок и запустите его следующим образом для мониторинга /dev/sda, /dev/sdb, /dev/sdc и /dev/sdd:# hddtemp -d /dev/sd[abcd]
Используйте команду telnet или nc / netcat, чтобы получить температуру с удаленного блока:$ telnet remotebox 7634
ИЛИ$ nc 192.168.1.100 7634
Примеры выходных данных:
|/dev/sda|Твердотельный накопитель Samsung 850 EVO mSATA 500 ГБ|45|C|
Вы можете отформатировать его следующим образом с помощью команды awk:nc centos7-box 7634 | awk -F'|' '{print $2 " " $4 $5 "(" $3 ")"}'
Примеры выходных данных:
/dev/sda 45C (Samsung SSD 850 EVO mSATA 500 ГБ)
Выключите компьютер с Linux, если температура >= 55
Чтобы выключить / выключить компьютер, выполните следующую команду через вкладку cron (задание cron) : Пример сценария оболочки для выключения, если температура> = 55 ° C ( ссылка для скачивания ):t=$(hddtemp /dev/sda --numeric)
[ $t -ge 55 ] && /sbin/shutdown -h 0
#!/bin/bash # Цель: Выключить сервер, если температура диска превысила $ALERT_LEVEL # Автор: Vivek Gite {https://www.cyberciti.biz/}, под GPL v.2.x # ------- -------------------------------------------------- -------- HDDS = "/dev/sda /dev/sdb /dev/sdc /dev/sdc /dev/sdd /dev/sde" HDT = / usr / sbin / hddtemp LOG = / usr / bin / logger DOWN = / sbin / shutdown ALERT_LEVEL = 60 для диска в $HDDS делать если [ -b $диск ] ; затем HDTEMP =$ ( ${HDT} --numeric ${disk} ) if [ $HDTEMP -ge $ALERT_LEVEL ] ; затем $LOG "Система отключается, так как температура жесткого диска \" $disk \" ( $HDTEMP ) превысила допустимый предел." синхронизировать ; синхронизировать $DOWN -h 0 fi fi готово
Вы можете запустить скрипт, используя задание cron в Linux или Unix-подобной системе:$ sudo crontab -e
Добавьте следующее , чтобы запускать задание cron каждые 10 минут для проверки температуры диска :*/10 * * * * /root/bin/chk-disk-temp.bash
параметры команды hddtemp
Чтобы увидеть использование, запустите:$ hddtemp --help
Sample outputs:
-b --drivebase : отображать содержимое файла базы данных, позволяющее hddtemp распознавать поддерживаемые диски. -D --debug : отображать различные поля SMART и их значения. Полезно найти значение, которое кажется соответствующим температуру и/или отправить мне отчет. ( делается для каждого поставляемого привода ) . -d --daemon : запустить hddtemp в режиме демона TCP/IP ( по умолчанию порт 7634 ) . -f --file = ФАЙЛ : указать файл базы данных для использования. -F --foreground : не демонизировать, оставаться на переднем плане. -l --listen=addr : слушать на определенном интерфейсе (в режиме демона TCP/IP). -n --numeric : вывести только температуру. -p --port=# : порт для прослушивания (в режиме демона TCP/IP). -s --separator=C : разделитель для использования между полями (в режиме демона TCP/IP). -S --syslog=s : записывать температуру в системный журнал каждые s секунд. -u --unit=[C|F] : установить выходную температуру в градусах Цельсия или Фаренгейта. -q --quiet : не проверять, поддерживается ли диск. -v --version : показать номер версии hddtemp. -w --wake-up : разбудить диск, если это необходимо. -4 : прослушивать только сокеты IPv4. -6 : прослушивать только сокеты IPv6.
Примечание о nvme ssd
Мы можем использовать команду smartcl или nvme для получения температуры. Например:sudo smartctl -A /dev/nvme0
smartctl 6.6 2016 -05-31 r4324 [ x86_64-linux- 4.18.0-25 -generic ] ( локальная сборка ) Copyright ( C ) 2002–16 , Брюс Аллен, Кристиан Франке, www.smartmontools.org = == НАЧАЛО РАЗДЕЛА SMART DATA === Информация SMART/Health ( журнал NVMe 0x02, NSID 0xffffffff ) Критическое предупреждение: 0x00 Температура: 41 по Цельсию Доступные запасные части: 100 % Доступный запасной порог: 10 % Процент использования: 0 % Прочитано единиц данных: 15 889 [ 8,13 ГБ ] Записано единиц данных: 80 845 [ 41,3 ГБ ] Команд чтения хоста: 256 , 531 Команд записи хоста: 553 , 980 Время занятости контроллера: 3 Циклы питания: 38 Время включения питания: 4 Небезопасные завершения работы: 27 Ошибки целостности носителей и данных: 0 Записи в журнале информации об ошибках: 41 Предупреждение Комп. Температурное время: 0 Критическая комп. Время температуры: 0 Датчик температуры 1 : 41 по Цельсию Датчик температуры 2 : 45 по Цельсию
Другой вариант — попробовать команду nvme для чтения температуры nvme ssd следующим образом:sudo nvme smart-log /dev/nvme0
Вот что я увидел:
Умный журнал для устройства NVME: идентификатор пространства имен nvme0: ffffffff Critical_warning : 0 температура : 41 C доступный_запасной: 100 % available_spare_threshold : 10 % процент_используемый : 0 % data_units_read : 15 , 889 data_units_writing : 80 , 841 host_read_commands : 2 , 56 , 531 host_write_commands : 5 , 53 , 822 _ _ _ _ _ _ _ _ Предупреждение о температуре Время: 0 Критическая составная температура Время: 0 Температурный датчик 1 : 41 C Датчик температуры 2 : 45 °С Управление температурным режимом T1 Trans Count : 0 Управление температурным режимом T2 Trans Count : 0 Управление температурным режимом T1 Общее время : 0 Управление температурным режимом T2 Общее время : 0
Дополнительную информацию см. в разделе « Linux определяет температуру NVMe SSD с помощью командной строки ».
Поздоровайтесь с утилитой smartctl
Если у вас установлена ??утилита smartctl , попробуйте получить данные о температуре следующим образом:# smartctl -d ata -A /dev/sda | grep -i temperature
# smartctl -A /dev/sdb | grep -i temperature
Установите ALERT_LEVEL в соответствии с вашими требованиями. Пожалуйста, обратитесь к руководству по эксплуатации вашего жесткого диска для получения рекомендаций по рабочей температуре. Вот общие рекомендации по температуре (взято с веб-страницы жестких дисков Seagate серии SV35.2):
Операционная | от 0 до 60 градусов С |
Не работает | от -40 до 70 градусов С |
Максимальное изменение рабочей температуры | 20 градусов С в час |
Максимальное изменение температуры в нерабочем состоянии | 30 градусов С в час |
Максимальная рабочая температура корпуса | 69 градусов С |
Диски и хранилище на основе графического интерфейса Gnome
Введите следующую команду:gnome-disks
Нажмите на диск, и он покажет вам температуру диска следующим образом:
Примечание для пользователей MS-Windows XP / Vista / 7 / 10 / Server
Извиняюсь. Программа hddtemp предназначена только для UNIX/Linux.
Вывод
Вы узнали, как контролировать температуру жестких дисков с помощью утилит hddtemp, smartctl и GUI.
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.