Pobieranie temperatury dysków HDD SSD NVMe w Linuxie

Od czasu do czasu przydać się może informacja dotycząca temperatury dysków, które kręcą się (lub nie) w serwerze, są różnego rodzaju przystawki, widżety, webui, ale nie zawsze spełnia to nasze wymagania lub informację o temperaturze, chcemy przekazywać dalej.

Oto jeden z wielu sposobów jak uzyskać informację o temperaturze ( i nie tylko ) bezpośrednio z dysku.

Dla dysków HDD (mechanicznych/talerzowych) oraz SATA SSD:

apt-get install hddtemp
# blkid <- komenda zwróci ścieżkę do używanych przestrzeni dyskowych
hddtemp /dev/sda

>>> informacja zwrotna
/dev/sda: IR-SSDPR-S25A-120: 33°C

# wyłuskajmy informację, która nas najbardziej interesuje:
hddtemp /dev/sda | sed -E  's/(.*):{1}(.*)/\2/' | sed -E 's/(.*)\°{1}(.*)/\1/' | sed -e 's/^[ \t]*//'

>>> informacja zwrotna
33

Dla dysków NVMe:

apt-get install nvme-cli
# blkid <- komenda zwróci ścieżkę do używanych przestrzeni dyskowych
nvme smart-log /dev/nvme0n1

>>> informacja zwrotna
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning                        : 0
temperature                             : 35 C
available_spare                         : 100%
available_spare_threshold               : 10%
percentage_used                         : 0%
endurance group critical warning summary: 0
data_units_read                         : 14,710,609
data_units_written                      : 4,399,231
host_read_commands                      : 117,122,111
host_write_commands                     : 83,852,221
controller_busy_time                    : 1,567
power_cycles                            : 15
power_on_hours                          : 3,750
unsafe_shutdowns                        : 1
media_errors                            : 0
num_err_log_entries                     : 0
Warning Temperature Time                : 6
Critical Composite Temperature Time     : 0
Thermal Management T1 Trans Count       : 23
Thermal Management T2 Trans Count       : 19
Thermal Management T1 Total Time        : 336
Thermal Management T2 Total Time        : 255

# wyłuskajmy informację, która nas najbardziej interesuje:
nvme smart-log /dev/nvme0n1 | grep temperature | sed -E  's/(.*):{1}(.*)/\2/' | sed -E 's/(.*).C{1}(.*)/\1/' | sed 's/[[:space:]]*//g'

>>> informacja zwrotna
35

Maszyna wirtualna:

Oczywiście maszyna wirtualna, nie musi mieć przekazywanego bezpośrednio dysku, z reguły jest to też dysk wirtualny, wtedy otrzymamy np. taki komunikat:

/dev/sda: QEMU QEMU HARDDISK: S.M.A.R.T. not available

1 myśl na “Pobieranie temperatury dysków HDD SSD NVMe w Linuxie”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*