|
You last visited: Today at 13:36
Advertisement
Cronjob erstellt kein Logfile
Discussion on Cronjob erstellt kein Logfile within the Web Development forum part of the Coders Den category.
08/15/2019, 22:16
|
#1
|
elite*gold: 0
Join Date: Jun 2011
Posts: 670
Received Thanks: 118
|
Cronjob erstellt kein Logfile
Hallo zusammen,
ich lasse mein Script per Cronjob regelmäßig ausführen. Das funktioniert auch ohne Probleme. Ich habe das Script des Cronjobs dahingehend erweitert, dass ein Logfile erstellt wird.
Das sieht dann folgendermaßen aus:
Im Script des Cronjobs:
Code:
update_logfile($info);
Die entsprechende Funktion in der anderen Datei
Code:
function update_logfile($info) {
// Logdatei schreiben
$format = "csv";
$datum_zeit = date("d.m.Y H:i:s");
$monate = array(1=>"Januar", 2=>"Februar", 3=>"Maerz", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember");
$monat = date("n");
$jahr = date("y");
$dateiname="logs/log_".$monate[$monat]."_$jahr.$format";
$header = array("Datum", "Information");
$infos = array($datum_zeit, $info);
if($format == "csv") {
$eintrag= '"'.implode('", "', $infos).'"';
} else {
$eintrag = implode("\t", $infos);
}
$write_header = !file_exists($dateiname);
$datei=fopen($dateiname,"a");
if($write_header) {
if($format == "csv") {
$header_line = '"'.implode('", "', $header).'"';
} else {
$header_line = implode("\t", $header);
}
fputs($datei, $header_line."\n");
}
fputs($datei,$eintrag."\n");
fclose($datei);
}
Wenn ich mein Cronjob Script händisch im Browser starte, funktioniert alles ohne Probleme. Er erstellt die Logdatei, falls sie fehlt oder aktualisiert sie, falls sie schon da ist.
Nur wenn ich in Plesk den Cronjob starte, erstellt er mir keine Logdatei! Das Script läuft ohne Probleme durch, aber die Logdatei fehlt eben...
Hat hierzu jemand eine Idee?
Danke im Voraus.
Schöne Grüße
|
|
|
08/16/2019, 00:07
|
#2
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by .Insane
Hallo zusammen,
ich lasse mein Script per Cronjob regelmäßig ausführen. Das funktioniert auch ohne Probleme. Ich habe das Script des Cronjobs dahingehend erweitert, dass ein Logfile erstellt wird.
Das sieht dann folgendermaßen aus:
Im Script des Cronjobs:
Code:
update_logfile($info);
Die entsprechende Funktion in der anderen Datei
Code:
function update_logfile($info) {
// Logdatei schreiben
$format = "csv";
$datum_zeit = date("d.m.Y H:i:s");
$monate = array(1=>"Januar", 2=>"Februar", 3=>"Maerz", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember");
$monat = date("n");
$jahr = date("y");
$dateiname="logs/log_".$monate[$monat]."_$jahr.$format";
$header = array("Datum", "Information");
$infos = array($datum_zeit, $info);
if($format == "csv") {
$eintrag= '"'.implode('", "', $infos).'"';
} else {
$eintrag = implode("\t", $infos);
}
$write_header = !file_exists($dateiname);
$datei=fopen($dateiname,"a");
if($write_header) {
if($format == "csv") {
$header_line = '"'.implode('", "', $header).'"';
} else {
$header_line = implode("\t", $header);
}
fputs($datei, $header_line."\n");
}
fputs($datei,$eintrag."\n");
fclose($datei);
}
Wenn ich mein Cronjob Script händisch im Browser starte, funktioniert alles ohne Probleme. Er erstellt die Logdatei, falls sie fehlt oder aktualisiert sie, falls sie schon da ist.
Nur wenn ich in Plesk den Cronjob starte, erstellt er mir keine Logdatei! Das Script läuft ohne Probleme durch, aber die Logdatei fehlt eben...
Hat hierzu jemand eine Idee?
Danke im Voraus.
Schöne Grüße
|
Das dein Code echt nicht schön ist muss ich dir wahrscheinlich nicht sagen oder ?
Zurück zu deinem Problem, ich denke du hast ein Problem mit dem Pfad wo die Datei gespeichert werden soll.
Versuch es mal mit __DIR__ z.B.
PHP Code:
$dateiname = __DIR__ . "/logs/log_".$monate[$monat]."_$jahr.$format";
Beispiel:
Wenn du dein Script im Verzeichnis "/var/www/" hast und es dort auch ausführst ("cd /var/www/", "php datei.php") wird es gehen da er versuchen wird die Datei unter "/var/www/logs/" zu erstellen.
Bist nun aber im Verzeichniss "/var/" und startest das Script ("cd /var/", "php www/datei.php") wird es nicht mehr funktionieren da er nun versuchen wird die Datei unter "/var/logs/" zu erstellen.
Dies kann aus mehreren Gründen dann nicht gehen, der Pfad existiert einfach nicht oder der ausführende Benutzer hat dort keine Rechte zum schreiben.
€: Kann dir empfehlen fürs logging.
|
|
|
08/16/2019, 07:07
|
#3
|
elite*gold: 0
Join Date: Jun 2011
Posts: 670
Received Thanks: 118
|
Danke für deinen Hinweis. Die Logfiles werden jetzt erstellt!
Das ist nicht mein Script! Habe das fast eins zu eins aus dem Internet genommen. Habe noch nie mit Logfiles gearbeitet.
Wo siehst du das größte Problem bei dem Script?
|
|
|
08/16/2019, 09:55
|
#4
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by .Insane
Danke für deinen Hinweis. Die Logfiles werden jetzt erstellt!
Das ist nicht mein Script! Habe das fast eins zu eins aus dem Internet genommen. Habe noch nie mit Logfiles gearbeitet.
Wo siehst du das größte Problem bei dem Script?
|
Sind einige Punkte die nicht schön sind, ein paar Beispiele:
- Es wird kein camelCase benutzt
- Variablennamen in Deutsch
- Hardcoded stuff z.B. "csv"
- Es wird == statt === benutzt.
- Alter Syntax für Arrays (array() statt []).
- Prozedurale Programmierung wird angewendet statt OOP zu nutzen z.B. (date() statt DateTime Class)
- Generell die Formatierung ist grausam
- Es gibt extra methoden um eine csv zu erstellen, hier wird allerdings fput etc. genutzt
- usw.
|
|
|
|
Similar Threads
|
Nitrado Cronjob Installation Möglich ??
02/02/2014 - Metin2 Private Server - 6 Replies
Hallo Liebe Community , ich habe ma eine frage :
Wollte ma fragen ob es bei Nitrado Möglich ist einen Cronjob zu Installieren oder
welche Möglichkeiten da gibs Würde mich für eine Schnelle antwort Freuen MFG
|
Corerestarter Cronjob !
11/11/2013 - Metin2 Private Server - 1 Replies
Guten Abend.
Ich habe den Corerestarter installiert.
#!/bin/sh
# Metin 2 Corerestarter
# v 1.0b
# by aiiR7
# Settings
|
Cronjob Programm
03/03/2013 - Web Development - 8 Replies
Jo, guten abend zusammen,
ich suche ein Programm, welches ich auf meinen Windows vServer installieren kann, das alle 5 min meine Cronjob-site aufruft ( Bsp: http : / /127.0.0.1/cronjob.php?site_ranking )
Muss nicht unbedingt kostenlos sein, sollte jetzt aber nichts sein was xxxx€ kostet.
Vielen Dank im vorraus.
|
[Cronjob] Zufällige Nachricht in Rufchat (per PHP)
04/04/2011 - Metin2 PServer Guides & Strategies - 10 Replies
Jo, ich hab mal grad Lust gehabt, was außer meiner Page zu machen ;D
Da die Quests irgendwie immer beim Teleportieren nicht mehr wirklich funktionieren, ist hier mal einer Version der Auto-Nachricht mit Sockets und PHP.
Wie Funktionierts?
Das Skript sucht sich aus einer xml-Datei eine Nachricht aus (kann auch Mehrzeilig sein), und schickt sie per Socket an den Server.
Die Nachrichten könnt ihr selbst anpassen, einfach die messages.xml bearbeiten, die dabei liegt.
Zeilenumbrüche könnt...
|
[HOWTO] Automatisch entbannen per Cronjob
12/11/2010 - Metin2 PServer Guides & Strategies - 51 Replies
Hallo Leute,
ihr möchtet bestimmt manchmal User bannen, allerdings sollen diese nicht permanent, sondern nur für eine bestimmt Zeit gebannt werden, dies ist eigentlich ganz einfach und ich werde es in diesen Tutorial erklären. Ich hoffe mal so etwas gab es noch nicht.
Als erstes führt ihr folgenden Query in eurer Datenbank 'account' aus:
ALTER TABLE `account` ADD `baned` VARCHAR(50) NULL DEFAULT NULL AFTER `status`;
ALTER TABLE `account` ADD `bantime` INT(10) NULL DEFAULT NULL AFTER...
|
All times are GMT +2. The time now is 13:36.
|
|