bdaum
4. Januar 2006 um 22:47
1
Den Log-Ordner kann man mit folgenden Skript bereinigen:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : cleanUpLogs.ips.php
Trigger : startup
Interval :
*/
$dir = "logs/";
$daysToKeep = 7;
if ($handle = opendir($dir)) {
$deleteBefore = time() - 86400 * $daysToKeep;
while (false !== ($file = readdir($handle))) {
$creationTime = (int)str_replace("logfile", "", str_replace(".log", "", $file));
if ( $creationTime > 0 && $creationTime < $deleteBefore)
unlink($dir.$file);
}
closedir($handle);
}
?>
Das Skript sollte man vom Startup-Skript aus aufrufen.
Hallo Bdaum,
dein Script hat bei mir irgendwie nicht funktioniert.
Ich hab es mal ein bisschen geändert.
$dir = „logs/“;
$daysToKeep = 5;
if ($handle = opendir($dir)) {
$deleteBefore = time() - 86400 * $daysToKeep;
while (false==!($file = readdir($handle))) {
$creationTime = (int)str_replace(„logfile“, „“, str_replace(".log", „“, $file));
if ( $creationTime > 0 && $creationTime < $deleteBefore)
unlink($dir.$file);
}
closedir($handle);
}
so sollte es dann funktionieren
Grüße
Thomas
babba
14. Februar 2006 um 19:19
4
Mal ne Frage an paresy:
nach welchen Regeln, bzw. wie oft wird denn der file name der logfile generiert/geändert?
Ich hatte bis jetzt das CleanUpLogs script immer 1x um Mitternacht aufgerufen und heute Nacht wollte dies wohl versuchen das einzig vorhandene logfile zu löschen. Irgendwie hatte ich dann unzählige Error messages und konnte sehen, dass IPS - ich glaube - 1,5 Stunden mit sich selbst beschäftigt war und nicht seinen normalen Verpflichtungen nachgegangen ist.
Leider erst dann habe ich den Hinweis
Das Skript sollte man vom Startup-Skript aus aufrufen.
gesehen
Gruss Dieter
paresy
14. Februar 2006 um 20:02
5
Das Logfile wird zurzeit beim Starten von IPS angelegt.
Torro hatte aber schonmal gewünscht, um Mitternacht die Logfiles zu rotieren… (steht noch auf meinem Zettel)
Grüße, paresy
Torro
14. Februar 2006 um 20:08
6
Hallo,
paresy:
Das Logfile wird zurzeit beim Starten von IPS angelegt.
Torro hatte aber schonmal gewünscht, um Mitternacht die Logfiles zu rotieren… (steht noch auf meinem Zettel)
Grüße, paresy
ja genau, und dann am besten auch gleich alle Files in diesem Verzeichnis
Gruss Torro
Torro
25. Februar 2006 um 21:56
7
Hallo,
ich habe mal das Script etwas angepasst, da ja inzwischen bei Nutzung des WIIPS weitere Logfiles angelegt werden:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : cleanUpLogs.ips.php
Trigger : startup
Interval :
*/
$dir = str_replace( '\\','/',IPS_GetKernelDir() ) . "logs/";
$daysToKeep = 7;
if ( $handle = opendir($dir) ) {
$deleteBefore = time() - 86400 * $daysToKeep;
while (False !== ($file = readdir($handle) ) ) {
$creationTime = (int)str_replace("logfile", "", str_replace(".log", "", $file) );
if ( $creationTime == 0 ) {
$creationTime = (int)str_replace("wiips", "", str_replace(".log", "", $file) );
}
if ( $creationTime > 0 && $creationTime < $deleteBefore) {
unlink($dir.$file);
}
}
closedir($handle);
}
?>
Gruss Torro
tommi
7. März 2006 um 22:38
8
Leider kann man IPS offenbar die Logfiles nicht unter den Füssen wegziehen.
Das Script folgende bricht ab, wenn es um die aktuelle Logdatei geht (z.B. access_xxx.log, logfile_xxx.log)
echo "CleanUp Logs...";
setlocale(LC_TIME, "de_DE");
$dir="c:/Programme/IP-SYMCON/logs/";
chdir($dir);
$daysToKeep = 7;
$deleteBefore = time() - 86400 * $daysToKeep;
$logs=glob("*.log");
foreach ($logs as $file) {
$bn=basename($file,'.log');
$creationTime = filectime($file);
if (!preg_match('/\.[\d_]+\.log$/',$file)) {
$newname=$bn.'.'.date('Ymd_His',$creationTime).'.log';
if (@rename($file,$newname))
$file=$newname;
}
if ( $creationTime > 0 && $creationTime < $deleteBefore) {
unlink($file);
}
}
Da ich das auch nicht von aussen (z.B. IPS stoppen und starten) machen möchte, wäre es vieleicht doch ganz nett, wenn so ein Logrotate von Hause aus (z.B. in Daily_Jobs) eingebaut wäre.
Tommi
klaus
31. März 2006 um 13:37
9
Hallo,
gibt es keine möglichkeit die Log-Files ganz auszuschalten?
bei mir schwillt das logfile in 3 Stunden auf 7MB an, das macht am Tag fast 60MB und eigentlich brauche ich die LogFiles nicht.
GGGss
31. März 2006 um 17:08
10
Bis ein fehler auftritt…
Ein master ‚debug‘ switch (IP_Symcon.exe -d) wäre wunschenswert
oder besser : backwards compatibility -> IP_Symcon -nl (NoLogs)
paresy
31. März 2006 um 17:29
11
Die nächste IPS Version rotiert die Logfiles jeden Tag und löscht Files älter als 7 Tage automatisch.
Grüße, paresy