Hallo,
ich habe mal eine Frage.
Ich bin totaler Neuling in Sachen Raspberry und habe da ein Problem. :s
Ich möchte ein PHP Script über einen Cronjob alle 5 Min. ausführen damit es mir Daten in eine Datenbank schreibt.
Das Script habe ich ausführbar mit gemacht.
Der Cronjob läuft, aber das Script wird nicht ausgeführt!
Feb 13 11:25:01 solaranlage /USR/SBIN/CRON[3367]: (root) CMD (/home/pi/pv/ php tarom.php)
Feb 13 11:30:01 solaranlage /USR/SBIN/CRON[3367]: (root) CMD (/home/pi/pv/ php tarom.php)
Feb 13 11:35:01 solaranlage /USR/SBIN/CRON[3367]: (root) CMD (/home/pi/pv/ php tarom.php)
usw.
Das PHP Script wird auch nicht ausgeführt wenn ich über die Kommandozeile den Pfad zum Script angebe.
Es kommen dann eine Fehlermeldungen.
PHP Warning: file(tarom_yyyy_mm_dd.log): failed to open stream: No such file or directory in /home/pi/pv//tarom.php on line 34
PHP Notice: Undefined offset: 1 in /home/pi/pv/tarom.php on line 39
PHP Notice: Undefined offset: 2 in /home/pi/pv/tarom.php on line 39
PHP Notice: Undefined offset: 1 in /home/pi/pv/tarom.php on line 39
PHP Notice: Undefined offset: 2 in /home/pi/pv/tarom.php on line 39
Wenn ich aber mit
in den Ordner gehe und dann
in die Kommandozeile eingebe wird das Script ausgeführt und die Daten liegen in der Datenbank!
Also ist das Script doch i.o. und der Fehler liegt woanders, oder?
Gruß
Ralwi
Das Script „tarom.php“ sieht so aus:
#!/usr/bin/php
<?php
// Verbindung zur Datenbank
$server_cr = "localhost";
$user_cr = "root";
$pass_cr = "YYYYY";
$datenbank_cr = "XXXXX";
$conn_cr = @mysql_connect($server_cr, $user_cr, $pass_cr, true);
mysql_select_db($datenbank_cr, $conn_cr);
if ($conn_cr!=TRUE)
{
echo "<P>Verbindungsfehler: ".mysql_error()." !! Versuchen Sie es später noch einmal.";
die;
}
$strDbLocation = 'mysql:dbname=XXXXX;host=localhost';
$strDbUser = 'root';
$strDbPassword = 'YYYYY';
try
{
$objDb = new PDO($strDbLocation, $strDbUser, $strDbPassword);
}
catch (PDOException $e)
{
echo 'Fehler beim Öffnen der Datenbank: ' . $e->getMessage();
}
// Verbindung zur Datenbank
$zeilen = file ('tarom_yyyy_mm_dd.log');
for ($i = count($zeilen) -2; $i < count($zeilen); $i++) {
$inhalt_getrennt[$i] = explode(';',$zeilen[$i]);
$datum_zeit = $inhalt_getrennt[$i][1] . $inhalt_getrennt[$i][2];
$datetime = date("Y-m-d H:i:s", strtotime($datum_zeit));
$datensatz[$i] = '"' . $datetime . '","' . implode('","', $inhalt_getrennt[$i]) . '"';
$insert_skript = 'INSERT INTO tarom VALUES ('. $datensatz[$i] .')';
$insert = mysql_query($insert_skript);
}
?>
Alles anzeigen
Die eingelesene Textdatei „tarom_yyyy_mm_dd.log“ sieht so aus:
1;2016/02/11;15:51;29.0;29.8;#;100.0;#;0.1;6.4;#;0.1;0.1;0.0;0.0;10.1;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;17D7
1;2016/02/11;15:52;28.9;29.9;#;100.0;#;0.1;6.4;#;0.1;0.1;0.0;0.0;10.1;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;2D00
1;2016/02/11;15:53;29.2;30.0;#;100.0;#;0.1;6.4;#;0.1;0.1;0.0;0.0;10.1;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;9FDB
1;2016/02/11;15:54;29.2;30.1;#;100.0;#;0.1;6.4;#;0.1;0.1;0.0;0.0;10.1;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;4FC8
1;2016/02/11;15:55;29.0;30.0;#;100.0;#;0.1;6.4;#;0.1;0.1;0.0;0.0;10.1;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;0F97
1;2016/02/11;15:56;28.9;29.8;#;100.0;#;0.1;4.4;#;0.1;0.1;0.0;0.0;10.1;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;B09F
1;2016/02/11;15:57;29.3;30.0;#;100.0;#;0.1;5.6;#;0.1;0.1;0.0;0.0;10.0;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;B8DD
1;2016/02/11;15:58;29.2;30.2;#;100.0;#;0.1;5.6;#;0.1;0.1;0.0;0.0;10.0;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;5AE2
1;2016/02/11;15:59;29.1;30.2;#;100.0;#;0.1;5.6;#;0.1;0.1;0.0;0.0;10.0;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;B6B4
1;2016/02/11;16:00;29.1;30.1;#;100.0;#;0.1;5.6;#;0.1;0.1;0.0;0.0;10.0;0;F;0;1;0;5.3;11059.1;0.0;0.0;0;B46B
usw.