Script Problem (mit rddtool)

21/02/2008 - 15:21 von Anton Blau | Report spam
Hallo Newsgroup,

ich möchte gerne einige Daten aus sensor und hddtemp auslesen und diese
dann rdd übergeben um sie anschließend per Browser abfragen zu können.
Leider funktioniert mein Script nicht:


#!/bin/sh

RRDFILE1=/var/lib/rrd/lm-sensors/temperaturmain.rrd
GRAPHFILE1=/var/www/lm-sensors/temperaturmain.png
RRDFILE2=/var/lib/rrd/lm-sensors/temperaturhd.rrd
GRAPHFILE2=/var/www/lm-sensors/temperaturhd.png
RRDFILE3=/var/lib/rrd/lm-sensors/fan.rrd
GRAPHFILE3=/var/www/lm-sensors/fan.png

# Auslesen von CPU, SMBus und Mainboardtemperatur
CPUTEMP=`sensors|grep "CPU AMD"| cut -d+ -f2 | cut -d° -f1`
SMBTEMP=`sensors|grep "temp"| cut -d+ -f2 | cut -d° -f1`
MBTEMP=`sensors|grep "M/B Temp"| cut -d+ -f2 | cut -d° -f1`

# Auslesen der HD Temperaturen
HDTEMPA=`hddtemp /dev/hda| cut -dS -f2 | cut -d: -f2 | cut -d° -f1`
HDTEMPC=`hddtemp /dev/hdc| cut -dS -f2 | cut -d: -f2 | cut -d° -f1`
HDTEMPD=`hddtemp /dev/hdd| cut -dS -f2 | cut -d: -f2 | cut -d° -f1`

# Auslesen der FAN-Geschwindigkeiten
CPUFAN=`sensors|grep "CPU Fan"| cut -d: -f2 | cut -dR -f1`
CHASSISFAN=`sensors|grep "Chass Fan"| cut -d: -f2 | cut -dR -f1`
POWERFAN=`sensors|grep "Power Fan"| cut -d: -f2 | cut -dR -f1`

# Test, ob die Daten richtig ausgelesen werden
echo $CPUTEMP
echo $MBTEMP
echo $SMBTEMP
echo $HDTEMPA
echo $HDTEMPC
echo $HDTEMPD
echo $CPUFAN
echo $CHASSISFAN
echo $POWERFAN

rrdtool update $RRDFILE1 -t cputemp:mbtemp:smbtemp
N:$CPUTEMP:$MBTEMP:$SMBTEMP

echo "teil1"

rrdtool update $RRDFILE2 -t hdatemp:hdctemp:hddtemp
N:$HDTEMPA:$HDTEMPC:$HDTEMPD

echo "teil2"

rrdtool update $RRDFILE3 -t cpufan:chassisfan:powerfan
N:$CPUFAN:$CHASSISFAN:$POWERFAN


Ich erhalte damit immer:

gustav:/home/scripts# ./rrd-temperatur-neu
25
37
44
47
45
46
7336
4753
0
teil1
ERROR: expected 3 data source readings (got 1) from N::...
teil2
ERROR: expected 3 data source readings (got 1) from N::...


Die erste rddtool update Zeile scheint zu funktionieren. Die beiden
weiteren nicht.

Nur weshalb?

Danke!


Gerhard
 

Lesen sie die antworten

#1 Alexander Griesser
21/02/2008 - 15:31 | Warnen spam
Anton Blau wrote:
# Auslesen von CPU, SMBus und Mainboardtemperatur
CPUTEMP=`sensors|grep "CPU AMD"| cut -d+ -f2 | cut -d° -f1`
SMBTEMP=`sensors|grep "temp"| cut -d+ -f2 | cut -d° -f1`
MBTEMP=`sensors|grep "M/B Temp"| cut -d+ -f2 | cut -d° -f1`

# Auslesen der HD Temperaturen
HDTEMPA=`hddtemp /dev/hda| cut -dS -f2 | cut -d: -f2 | cut -d° -f1`
HDTEMPC=`hddtemp /dev/hdc| cut -dS -f2 | cut -d: -f2 | cut -d° -f1`
HDTEMPD=`hddtemp /dev/hdd| cut -dS -f2 | cut -d: -f2 | cut -d° -f1`

# Auslesen der FAN-Geschwindigkeiten
CPUFAN=`sensors|grep "CPU Fan"| cut -d: -f2 | cut -dR -f1`
CHASSISFAN=`sensors|grep "Chass Fan"| cut -d: -f2 | cut -dR -f1`
POWERFAN=`sensors|grep "Power Fan"| cut -d: -f2 | cut -dR -f1`



Mitglied im `cut`-Fanclub? ;)

rrdtool update $RRDFILE1 -t cputemp:mbtemp:smbtemp
N:$CPUTEMP:$MBTEMP:$SMBTEMP

echo "teil1"

rrdtool update $RRDFILE2 -t hdatemp:hdctemp:hddtemp
N:$HDTEMPA:$HDTEMPC:$HDTEMPD

echo "teil2"

rrdtool update $RRDFILE3 -t cpufan:chassisfan:powerfan
N:$CPUFAN:$CHASSISFAN:$POWERFAN



Mach vor diese Zeilen mal ein `echo`, also:

echo rrdtool update $RRDFILE1 -t ...

und das für alle 3 Aufrufe damit wir sehen, wie rrdtool dann
aufgerufen wird.


ciao,
Alex

Ähnliche fragen