Jag har skrivit ett antal sådan skript genom åren.
JAg tror att det här skriptet fungerar:
Kod: Markera allt
#!/usr/bin/php
<?php
$file1 = "/tmp/tmp3.xml";
$handler = fopen("$file1", "r");
$line = fgets($handler);
$line = fgets($handler);
$tidold = 0;
while ( 1 > 0 ) {
echo $line;
if (strstr($line, "row>") != "0") {
echo "hit";
$line = str_replace(" ", "", $line);
$line = str_replace("<v>", " ", $line);
$line = strip_tags(rtrim($line));
list($tid,$temp) = split(" ", $line);
while ($tidold < $tid) {
if ($temp == "NaN") {
$tidold = $tid;
}
if ($tidold == 0) $tidold = $tid;
passthru("/usr/bin/rrdtool update /special/termo/rrdb/temperatur_linkoping.rrd $tidold:$temp");
$tidold = $tidold +120;
}
} elseif (strstr($line, "/xport") != "0") {
break;
}
echo "$tid\n";
$line = fgets($handler);
}
echo "done";
Jag har inte någon koll på när skriptet är skrivet eller om det fungerar rakt av.
Det ser ut som att skriptet för varje inläst rad loopar den nya databasen med 2 minuters intervall. Skulle man uppdatera i samma takt som man läser in skulle man försöka uppdatera en gång per timme, vilket med största sannolikhet skulle bli en uppdatering som är större än heartbeat - och inget skulle sparas.