Hallo,
Am Wed, 28 Aug 2013, Alex Winzer schrieb:
Wenn ich das Skript über den Browser (also von Hand) aufrufe, ist die Zeit korrekt. Immerhin habe ich auch unter /etc/php5/apache2/php.ini den Wert "date.timezone = 'Europe/Berlin'" gesetzt. Auch andere Zeitabfragen in php gehen richtig. Es soll aber automatisiert werden.
Also habe ich mit crontab -e folgende Zeile eingefügt: # mm hh DD MM dow command */10 * * * * /usr/bin/php /srv/www/htdocs/hdd_temp/temp_cron.php
Die /etc/php5/apache2/php.ini wird von /usr/bin/php nicht gelesen. Du mußt die /etc/php5/cli/php.ini anpassen, also auch dort die Zeitzone einstellen.
$coretemp = exec("/usr/bin/sensors | grep "temp1" | awk '{ print $2 }' | tr -d "+" | tr -d "°C"");
$coretemp = exec("/usr/bin/sensors | \ awk '/temp1/{gsub("[+°C]+","",$2);print $2;}'
Oder in PHP verwursten.
$hddtemp = exec("netcat localhost 7634");
Hier solltest du meinen Vorschlag direct den Socket mit PHP aufzumachen und auszulesen verwenden (inkl. der Nachbehandlung).
$usvtemp = exec("/usr/sbin/apcaccess | grep TIMELEFT");
$hdd_tmp = explode("|", $hddtemp); $hdd_1 = $hdd_tmp[3]; $hdd_2 = $hdd_tmp[8];
Siehe oben bei $hddtemp =
Du solltest das ganze auch nicht so verschachteln sondern eins nach dem anderen machen. Erst CPU, dann die HDDs, dann die USV, jew. bis du die Variablen hast, die du in die DB schieben willst.
$core = substr($coretemp, 0, 4);
Äh, $coretemp enthält doch schon nur die Temperatur.
$usv_tmp = explode(" ", $usvtemp); $usv = $usv_tmp[3];
$sql = "INSERT INTO temperatur (datum,core,hdd_1,hdd_2,usv) VALUES ('$datum',$core,$hdd_1,$hdd_2,$usv);";
SQL-Injection-anfällig.
$query = "INSERT INTO temperatur (datum,core,hdd_1,hdd_2,usv) VALUES (?,?,?,?)" $stmt = $mysqli->prepare($query); $stmt->bind_param("sfff", $core,$hdd_1,$hdd_2,$usv); $stmt->execute(); $stmt->close(); $mysqli->close();
echo $datum.'<br />'; echo $core.'<br />'; echo $hdd_1.'<br />'; echo $hdd_2.'<br />'; echo $usv.'<br />';
mysql_query($sql) or die (mysql_error());
mysql_close();
Auch hier wieder ungünstig verschachtelt. Ausserdem bekommst du ja die Ausgabe per Mail, also warum HTML?
HTH, -dnh