Am 28.01.2012 16:14, schrieb Wolfgang:
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
Diese Zeile ist schlichtweg falsch. In eine User crontab gehört keine User Spalte.
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)
Hatte ich glaube ich schon mal als fürchterliche chain of pipes kritisiert.
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
Warum hier den absoluten Pfad zu rrdtool ...
nice -n 19 rrdtool graph $Grafik \
und hier dann ohne Pfadangabe?
-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
Die Umgebung von cron ist recht rudimentär. Insbesondere ist $PATH eingeschränkt. Nutze absolute Pfade oder erweitere $PATH am Beginn des Scriptes.
Alexander