Freitag, 24. November 2017, 10:08 UTC+1

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: NAS Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

HWguru

NAS2000-Team

Beiträge: 1 001

Wohnort: Wien

1

Sonntag, 14. Dezember 2008, 16:34

Skript zum Mitloggen der Festplattentemperatur

Hi Fans!

Ich habe ein kleines Skript gebastelt um die Festplattentemperatur mitzuloggen.
Eigentlich wollte ich damit die Temperatur im NAS messen.
Ein netter Nebeneffekt ist, dass man sieht wann die Platte aktiv war und wann sie im Standby war.

Leider kann man die Temperatur der Platte nicht auslesen ohne sie aufzuwecken. Wenn man Spindown aktiviert hat, muss das Intervall zum Auslesen der Temperatur größer sein, als die eingestellte Spindown Zeit. Deshalb schaue ich vorher nach ob die Platte im Zustand active/idle oder standby ist. Wenn noch nicht genug Zeit vergangen ist, wird nur "on" statt der Temperatur ins Log eingetragen.

Leider hat auch das smatrtctl der Firmware einen Bug und muss ersetzt werden. Dazu das smartctl des NAS4220 aus der database laden, auf das do_it Verzeichnis kopieren, auspacken und folgende Zeilen in das init von do_it einfügen

Quellcode

1
2
3
4
if [ -f $WORK_DIR/smartctl ]; then
	echo "replace smartctl binary"
	cp $WORK_DIR/smartctl /sbin
fi


hdparm -C /dev/hda ermittelt den Zustand (active/idle oder standby) der Platte
smartctl -A /dev/hda liest SMART Daten aus - dort ist auch die Temperatur enthalten
smartctl -y /dev/hda legt die Platte schlafen
TIM_SD muss größer oder gleich mit der im GUI konfigurierten sein

das Skript hddtemp.sh wird im init des do_it wie folgt gestartet und läuft im Hintergrund

Quellcode

1
2
cp $HD_MNT_POINT/public/applications/do_it/hddtemp.sh /var/tmp
/var/tmp/hddtemp.sh &


Und hier ist hddtemp.sh

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh
#------------------------------------------------
# Harddisk temperature monitor
# Version: 1.0 by HWguru
#
# requires smartctl from NAS4220
# must be on ramdisk to avoid waking up of hdd
# inspired by the spindown tracking tool of gmeyer
#
# TIM_RD sets the readout interval
# TIM_SD must be set to the spindown time 
#------------------------------------------------

HDD=/dev/hda							#disk to be minitored
HDD_LOGF=hdd_temp.log;						#name of logfile
HDD_LOG1=/var/log/$HDD_LOGF;					#path in ramdisk
HDD_LOG2=/mnt/IDE1/public/applications/do_it/$HDD_LOGF;		#path on disk
TIM_RD=5							#log interval [min]
TIM_SD=30							#spindown time [min]
CNT=0

while (true); do						#loop forever
  DATTIM=`date +%d.%m.%Y,%H:%M,`				#read date and time
  echo -n $DATTIM >> $HDD_LOG1;
  STATE=`hdparm -C $HDD | grep "drive state" | awk '{print $4}'`

  if [ "$STATE" = "active/idle" ]; then				#only read temperature if disk is active
  
    if [ "$CNT" = "0" ]; then					#and only after TIM_SD - otherwise would not sleep
      MINU=`echo $DATTIM | awk 'BEGIN {FS = ","} ; {printf "%2s\n", substr($2,4,2)}'` 
      HDT=`smartctl -n standby -A $HDD | grep Temperature | awk '{printf "%2s\n", $10}'` #old: substr($4,2,2)
      echo $DATTIM$HDT >> $HDD_LOG2;				#log to file on disk
    else
      HDT=on
    fi

    if [ "$CNT" = "$TIM_SD" ]; then				#spindown time reached
      CNT=0							#allow temp readout again
    else
      let CNT+=$TIM_RD
    fi

  else								#HDD in standby
    HDT=""
    CNT=0							#allow temp readout again
  fi

  echo $HDT >> $HDD_LOG1;					#write entry to logfile
  sleep `expr $TIM_RD \* 60`					#sleep for time in seconds
done
# end

und als Download in der Database

Kontrolle ist alles :thumbup:

HWguru
Leute ohne Laster haben oft wenige Tugenden...
NAS2000 2.3.2.IB.2.RS.1+Lüfterabschaltung+SSH+do_it+zusätzliche commandline tools+changed root password
1. suchen - lesen - Google - lesen - 1. Fragen gehören ins Forum, dann profitieren alle davon!