Hallo CentOS-Freunde,
mein Problem hat bestimmt nichts mit CentOS zutun, aber Fragen kann man ja, oder?
Nachstehend ist eine sehr einfache bash, die bei manueller Ausführung wunderbar funktioniert, aber im cronjob werden nur die Temperaturen der Festplatten angezeigt.
[root@ ~]# crontab -l */5 * * * * /usr/local/sbin/temperatur oder */5 * * * * root /usr/local/sbin/temperatur
zeigen das gleiche Ergebnis.
#!/bin/bash
# Sinn dieser Bash: # einfacher Temp-Überblick
# 2.6.18-274.12.1.el5 #1 SMP Tue Nov 29 13:37:46 EST 2011 x86_64 x86_64 x86_64 GNU/Linux # sensors # k10temp-pci-00c3 # Adapter: PCI adapter # temp1: +38°C
DB_Name=/var/www/html/Ralf/rrd/`basename "$0" .sh`.rrd Grafik=/var/www/html/Ralf/rrd/`basename "$0" .sh`.png
if [ ! -f $DB_Name ]; then /usr/bin/rrdtool create $DB_Name --step 300 \ DS:TEMP_CPU:GAUGE:600:U:U \ DS:TEMP_SDA:GAUGE:600:U:U \ DS:TEMP_SDD:GAUGE:600:U:U \ RRA:AVERAGE:0.5:1:2160 \ RRA:AVERAGE:0.5:5:2016 \ RRA:AVERAGE:0.5:15:2880 \ RRA:AVERAGE:0.5:60:8760 fi
# Um diese Zeile dreht sich mein Problem: TEMP_CPU=$(sensors | tail -n2 | cut -d'+' -f2 | \ cut -d'C' -f1 | cut -d'°' -f1)
TEMP_SDA=$(hddtemp -n /dev/sdc) TEMP_SDD=$(hddtemp -n /dev/sdd)
/usr/bin/rrdtool update $DB_Name N:$TEMP_CPU:$TEMP_SDA:$TEMP_SDD
nice -n 19 rrdtool graph $Grafik \ -a PNG \ -t "Temperatur in °C $HOSTNAME" \ -v "`date +%d.%m.%Y-%H:%M`" \ --zoom 2 \ DEF:TEMP_CPU=$DB_Name:TEMP_CPU:AVERAGE \ DEF:TEMP_SDA=$DB_Name:TEMP_SDA:AVERAGE \ DEF:TEMP_SDD=$DB_Name:TEMP_SDD:AVERAGE \ LINE1:TEMP_CPU#FF0000:"CPU = $TEMP_CPU" \ LINE1:TEMP_SDA#00FF00:"SDC = $TEMP_SDA" \ LINE1:TEMP_SDD#0000FF:"SDD = $TEMP_SDD" \
/dev/null
Am 28.01.2012 16:14, schrieb Wolfgang:
Diese Zeile ist schlichtweg falsch. In eine User crontab gehört keine User Spalte.
Hatte ich glaube ich schon mal als fürchterliche chain of pipes kritisiert.
Warum hier den absoluten Pfad zu rrdtool ...
nice -n 19 rrdtool graph $Grafik \
und hier dann ohne Pfadangabe?
Die Umgebung von cron ist recht rudimentär. Insbesondere ist $PATH eingeschränkt. Nutze absolute Pfade oder erweitere $PATH am Beginn des Scriptes.
Alexander
Hi Wolfgang,
Was kriegst Du denn zugemailt, wenn Du einfach nur /usr/bin/sensors in der Crontab eintraegst statt des vollen Skriptes?
Und Du bist ganz sicher, dass Deine CPU-Temperatur immer in den letzten zwei Zeilen steht? Solltest Du nicht lieber gleich nach der korrekten Zeile greppen?
frank