Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 13:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Cronjob erstellt kein Logfile

Discussion on Cronjob erstellt kein Logfile within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1

 
.Insane's Avatar
 
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
.Insane is offline  
Old 08/16/2019, 00:07   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by .Insane View Post
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.
False is offline  
Thanks
1 User
Old 08/16/2019, 07:07   #3

 
.Insane's Avatar
 
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?
.Insane is offline  
Old 08/16/2019, 09:55   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by .Insane View Post
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.
False is offline  
Thanks
2 Users
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.