Ubuntu 9.04: Festplattentemperatur auslesen
Die internen Temperatursensoren einer Festplatte können über S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) abgefragt werden. Dazu benötigen Sie entweder die S.M.A.R.T. Monitoring Tools oder das Programm hddtemp. Ich möchte Ihnen hier beide Möglichkeiten die Festplattentemperatur auszulesen vorstellen.
S.M.A.R.T. Monitoring Tools
Die S.M.A.R.T. Monitoring Tools können Sie mit dem folgenden Befehl installieren.
georg@ubuntu904:~$ sudo apt-get install smartmontools
Nach der Installation können Sie mit dem Befehl smartctl die S.M.A.R.T. Informationen einer Festplatte auslesen.
georg@ubuntu904:~$ sudo smartctl -A /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 100 100 046 Pre-fail Always - 255977
2 Throughput_Performance 0x0005 100 100 030 Pre-fail Offline - 19857408
3 Spin_Up_Time 0x0003 100 100 025 Pre-fail Always - 1
4 Start_Stop_Count 0x0032 099 099 000 Old_age Always - 1017
5 Reallocated_Sector_Ct 0x0033 100 100 024 Pre-fail Always - 8589934592000
7 Seek_Error_Rate 0x000f 100 100 047 Pre-fail Always - 3545
8 Seek_Time_Performance 0x0005 100 100 019 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 728
10 Spin_Retry_Count 0x0013 100 100 020 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 608
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 91
193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 21360
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 38 (Lifetime Min/Max 18/57)
195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 1805
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 455016448
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x000f 100 100 060 Pre-fail Always - 6826
203 Run_Out_Cancel 0x0002 100 100 000 Old_age Always - 433770987357
240 Head_Flying_Hours 0x003e 200 200 000 Old_age Always - 0
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 100 100 046 Pre-fail Always - 255977
2 Throughput_Performance 0x0005 100 100 030 Pre-fail Offline - 19857408
3 Spin_Up_Time 0x0003 100 100 025 Pre-fail Always - 1
4 Start_Stop_Count 0x0032 099 099 000 Old_age Always - 1017
5 Reallocated_Sector_Ct 0x0033 100 100 024 Pre-fail Always - 8589934592000
7 Seek_Error_Rate 0x000f 100 100 047 Pre-fail Always - 3545
8 Seek_Time_Performance 0x0005 100 100 019 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 728
10 Spin_Retry_Count 0x0013 100 100 020 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 608
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 91
193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 21360
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 38 (Lifetime Min/Max 18/57)
195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 1805
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 455016448
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x000f 100 100 060 Pre-fail Always - 6826
203 Run_Out_Cancel 0x0002 100 100 000 Old_age Always - 433770987357
240 Head_Flying_Hours 0x003e 200 200 000 Old_age Always - 0
Die Festplattentemperatur finden Sie unter der ID 194 und beträgt in diesem Fall 38°C. Damit nur die entsprechende Zeile angezeigt wird, können Sie die Ausgabe mit grep filtern.
georg@ubuntu904:~$ sudo smartctl -A /dev/sda | grep Temperature
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 38 (Lifetime Min/Max 18/57)
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 38 (Lifetime Min/Max 18/57)
Wie Sie der Ausgabe entnehmen können, werden hier auch die minimale und maximale Temperatur der Festplatte während Ihrer bisherigen Benutzung angezeigt.
hddtemp
Das Programm hddtemp liest die aktuelle Temperatur einer Festplatte ebenfalls mit Hilfe von S.M.A.R.T. aus. hddtemp kann die Daten entweder direkt ausgeben, als Syslog-Meldung abspeichern oder als Serverdienst im Netzwerk zur Verfügung stellen.
Die Installation von hddtemp starten Sie mit dem folgenden Befehl.
georg@ubuntu904:~$ sudo apt-get install hddtemp
Während der Installation können Sie bereits den hddtemp-Daemon konfigurieren. Sollten Sie (vorerst) den Daemon nicht verwenden wollen, dann beantworten Sie die Frage Den Hddtemp-Dienst beim Hochfahren des Systems starten? mit Nein.
Die aktuelle Temperatur einer Festplatte lesen Sie zum Beispiel mit dem folgenden Befehl aus.
georg@ubuntu904:~$ sudo hddtemp /dev/sda
/dev/sda: HITACHI HTS722016K9SA00: 37°C
/dev/sda: HITACHI HTS722016K9SA00: 37°C
Wenn Sie mehrere Festplatten in Ihrem System verbaut haben, können Sie diese entweder einzeln abfragen oder wie im folgenden Beispiel die regulären Ausdrücke zur Hilfe nehmen.
georg@ubuntu904:~$ sudo hddtemp /dev/sd[a-z]
/dev/sda: HITACHI HTS722016K9SA00: 37°C
/dev/sdb: FUJITSU MHW2080BH PL: 38°C
/dev/sda: HITACHI HTS722016K9SA00: 37°C
/dev/sdb: FUJITSU MHW2080BH PL: 38°C
Sollten Sie sich jetzt entschließend hddtemp als Daemon im Hintergrund laufen zu lassen und die Festplattentemperatur(en) mit Hilfe von Syslog protokollieren und/oder im Netzwerk zur Verfügung stellen wollen, dann können Sie mit dem folgenden Befehl die Konfiguration des Daemon nachholen.
georg@ubuntu904:~$ sudo dpkg-reconfigure hddtemp
Folgen Sie hier einfach dem Konfigurations-Assistenten. Aus Sicherheitsgründen sollten Sie hddtemp aber nicht mit Root-Rechten laufen lassen.
Die Konfiguration von hddtemp finden Sie in der Datei /etc/default/hddtemp und könnte wie folgt aussehen.
# Defaults for hddtemp initscript (/etc/init.d/hddtemp)
# This is a POSIX shell fragment
# [automatically edited by postinst, do not change line format ]
# hddtemp network daemon switch. If set to true, hddtemp will listen
# for incoming connections.
RUN_DAEMON="true"
# List of devices you want to use with hddtemp. If none specified,
# hddtemp will probe standard devices.
#DISKS="/dev/hda"
# List of devices you want to use with hddtemp, but that would not be
# probed for a working sensor.
DISKS_NOPROBE=""
# IP address of the interface on which you want hddtemp to be bound
# on. If none specified, goes to 127.0.0.1. Use 0.0.0.0 to bind hddtemp
# on all interfaces.
INTERFACE="127.0.0.1"
# Port number on which you want hddtemp to listen on. If none specified,
# the port 7634 is used.
PORT="7634"
# Database file to use. If none specified, /etc/hddtemp.db is used.
#DATABASE="/etc/hddtemp.db"
# Separator to use between fields. The default separator is '|'.
#SEPARATOR="|"
# Logging period (in seconds) for the temperatures. If set to a value
# different than 0, hddtemp will run as a daemon periodically logging
# the temperatures through syslog
RUN_SYSLOG="600"
# Other options to pass to hddtemp
OPTIONS=""
# This is a POSIX shell fragment
# [automatically edited by postinst, do not change line format ]
# hddtemp network daemon switch. If set to true, hddtemp will listen
# for incoming connections.
RUN_DAEMON="true"
# List of devices you want to use with hddtemp. If none specified,
# hddtemp will probe standard devices.
#DISKS="/dev/hda"
# List of devices you want to use with hddtemp, but that would not be
# probed for a working sensor.
DISKS_NOPROBE=""
# IP address of the interface on which you want hddtemp to be bound
# on. If none specified, goes to 127.0.0.1. Use 0.0.0.0 to bind hddtemp
# on all interfaces.
INTERFACE="127.0.0.1"
# Port number on which you want hddtemp to listen on. If none specified,
# the port 7634 is used.
PORT="7634"
# Database file to use. If none specified, /etc/hddtemp.db is used.
#DATABASE="/etc/hddtemp.db"
# Separator to use between fields. The default separator is '|'.
#SEPARATOR="|"
# Logging period (in seconds) for the temperatures. If set to a value
# different than 0, hddtemp will run as a daemon periodically logging
# the temperatures through syslog
RUN_SYSLOG="600"
# Other options to pass to hddtemp
OPTIONS=""
Wenn Sie nur bestimmte Festplatten überwachen wollen, können Sie diese entweder mit der Option DISKS angeben oder die uninteressanten Festplatten durch die Option DISKS_NOPROBE ausschließen. Wenn Sie die Festplattentemperatur(en) im Netzwerk zur Verfügung stellen wollen, geben Sie bei der Option INTERFACE die entsprechende Netzerkschnittstelle oder 0.0.0.0 für alle Schnittstellen an. Sollten Sie eine Firewall verwenden, müssen Sie den TCP-Port 7634 öffnen damit Sie vom Netzwerk auf die Temperaturwerte zugreifen können. Durch die Option RUN_SYSLOG legen Sie fest, in welchem Intervall die Temperatur(en) an den Syslog weitergegeben werden sollen.
Nachdem Sie an der Konfigurationsdatei /etc/default/hddtemp Änderungen vorgenommen haben, sollten Sie den hddtemp-Daemon neu starten.
georg@ubuntu904:~$ sudo /etc/init.d/hddtemp restart
Die Festplattentemperaturen werden von Syslog in der Logdatei /var/log/syslog protokolliert.
georg@ubuntu904:~$ tail -f /var/log/syslog
Jun 12 21:49:41 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 21:59:42 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 22:09:43 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 22:19:43 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 22:29:44 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 21:49:41 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 21:59:42 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 22:09:43 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 22:19:43 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Jun 12 22:29:44 ubuntu hddtemp[7363]: /dev/sda: HITACHI HTS722016K9SA00: 37 C
Um die Daten von einem entfernten Rechner abzufragen, können Sie zum Beispiel Netcat verwenden.
georg@ubuntu904:~$ nc 192.168.10.1 7634
|/dev/sda|HITACHI HTS722016K9SA00|37|C|
|/dev/sda|HITACHI HTS722016K9SA00|37|C|
Dieser Eintrag wurde am 13.06.2009 erstellt und zuletzt am 19.05.2012 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_643.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2013 by Georg Kainzbauer
