Monitorare temperatura hard disk su Linux

Esiste una simpatica utility per monitorare temperatura hard disk. La maggior parte dei computer più moderni, x86, dispongono di dischi rigidi con S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology). Si tratta di un sistema di monitoraggio per trovare e registrare indicatori di affidabilità sul disco rigido, un tentativo di riuscire a prevenire eventuali danni.

=> Lo strumento hddtemp rende in ogni momento la temperatura del disco rigido leggendo le informazioni da S.M.A.R.T., sui dischi rigidi che supportano questa funzione, permettendo di monitorare temperatura hard disk. Solo i moderni dischi rigidi dispongono di un sensore della temperatura. Hddtemp supporta la lettura delle informazioni S.M.A.R.T. anche dai driver SCSI. Hddtemp può funzionare anche attraverso una semplice riga di comando per ottenere le informazioni utili.

Installare hddtemp

Per installare hddtemp su Debian / Ubuntu Linux,  digitare:
$ sudo apt-get install hddtemp

È anche possibile eseguire l’installazione a partire dal codice. Scaricare il codice da qui.
$ wget http://download.savannah.nongnu.org/releases/hddtemp/hddtemp-0.3-beta15.tar.bz2

Untar e installare  hddtemp:
$ tar -jxvf hddtemp-0.3-beta15.tar.bz2
$ cd hddtemp-0.3-beta15
$ ./configure
$ make
$ sudo make install

Installare il database delle temperature del disco rigido nella directory /usr/share/misc or /etc :
$ cd /usr/share/misc
# wget http://download.savannah.nongnu.org/releases/hddtemp/hddtemp.db

Come posso monitorare la temperatura del disco rigido?

Per controllare la temperatura, digitare il seguente comando for /dev/sda:
# hddtemp /dev/sda

Ecco come si presenterà:

/dev/sda: WDC WD2500YS-01SHB1: 25°C

La temperatura indicata qua sopra è di 25 gradi: se fosse superiore ai 60, bisognerebbe immediatamente valutare le opzioni di raffreddamento.

Come trovare le temperature sui dischi rigidi dei server?

hddtemp è collegato di default sulla porta TCP/IP 7634. È necessario eseguire hddtemp in modalità daemon. Effettuare il login nel box remoto ed eseguire nel modo seguente: /dev/sda, /dev/sdb, /dev/sdc, and /dev/sdd:
# hddtemp -d /dev/sd[abcd]

Usare il comando telnet or nc / netcat per ottenere la temperatura da un disco remoto:
$ telnet remotebox 7634

o

$ nc 192.168.1.100 7634

Spegnere il proprio computer Linux se la temperatura è >= 55

Per spegnere il proprio computer, inserire la seguente riga di comanda via cron tab (cron job) file:
[ $(hddtemp /dev/sda | awk '{ print $4}' | awk -F '°' '{ print $1}') -ge 55 ] && /sbin/shutdown -h 0 || :

Esempio di script shell per lo spegnimento se la temperatura è >= 55°C (download link):

#!/bin/bash
HDDS="/dev/sda /dev/sdb /dev/sdc"
HDT=/usr/sbin/hddtemp
LOG=/usr/bin/logger
DOWN=/sbin/shutdown
ALERT_LEVEL=55
for disk in $HDDS
do
  if [ -b $disk ]; then
	HDTEMP=$($HDT $disk | awk '{ print $4}' | awk -F '°' '{ print $1}')
        if [ $HDTEMP -ge $ALERT_LEVEL ]; then
           $LOG "System going down as hard disk : $disk temperature $HDTEMP°C crossed its limit"
           sync;sync
           $DOWN -h 0
        fi
  fi
done
Smartctl Utility

Se avete installato le smartctl utility , provate ad ottenere le informazioni sulla temperatura in questo modo:
# smartctl -d ata -A /dev/sda  | grep -i temperature

Come si presenterà:

194 Temperature_Celsius     0x0022   122   095   000    Old_age   Always       -       28

Impostare ALERT_LEVEL a seconda delle proprie necessità. Prendere nota del manuale del proprio disco rigido per le informazioni sulla temperatura di lavoro. Ecco le linee guida generali sulle temperature (estratte dalla pagina Seagate SV35.2 Series Hard Drives Web Page):

Attività 0 – 60 gradi C
Non operatività -40 – 70 gradi C
Massimo cambiamento di temperatura 20 gradi C per ora
Massimo cambiamento di temperatura in regime di non operatività 30 gradi C per ora
Massima temperatura per l’operatività 69 gradi C

Una nota per Windows XP/Vista/ Utenti server

hddtemp è un programma solo UNIX / Linux . Puoi scaricare la versione prova di hddtemp qui.

Scritto da Davide Micheli