Anleitung: access.log rotieren per BAT-Datei

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Hat Euch diese Anleitung geholfen?

Ja, es funktioniert und ich kann es gebrauchen
0
No votes
Nein, es funktioniert nicht/ich komme damit nicht klar
0
No votes
Ich brauche sowas nicht
0
No votes
 
Total votes : 0

Anleitung: access.log rotieren per BAT-Datei

Postby MisterX » 30. December 2005 14:13

Hallo!

Da dies ja immer gerne wieder auftaucht und ich eine gute Möglichkeit gefunden habe es mit Windows Boardmitteln zu erledigen,
habe ich mir gedacht hier eine Anleitung dafür zu schreiben.
Diese Anleitung gilt für WinXP und Win2000.
Für Win98/ME müsst Ihr apache_stop.bat und apache_start.bat ausführen lassen. Auch "Geplante Tasks" ist dort etwas anders.

1.) Ihr erstellt eine BAT-Datei (z.B. rotatelog.bat) die folgendes enthält:

WinXP/2000

NET STOP APACHE2
SET Datum=%date:~0,4%%date:~5,2%%date:~8,2%
SET Zeit=%time:~0,2%%time:~3,2%%time:~6,2%
COPY C:\apachefriends\xampp\apache\logs\access.log C:\apachefriends\xampp\apache\logs\access_%Datum%_%Zeit%.log
DEL C:\apachefriends\xampp\apache\logs\access.log
NET START APACHE2


Win98/ME

C:\apachefriends\xampp\apache_stop.bat
SET Datum=%date:~0,4%%date:~5,2%%date:~8,2%
SET Zeit=%time:~0,2%%time:~3,2%%time:~6,2%
COPY C:\apachefriends\xampp\apache\logs\access.log C:\apachefriends\xampp\apache\logs\access_%Datum%_%Zeit%.log
DEL C:\apachefriends\xampp\apache\logs\access.log
C:\apachefriends\xampp\apache_stop.bat
(Noch nicht getestet. Müsste aber in etwa gehen. Ansonsten korrigiert mich)

Hinweis:
Jenachdem was Ihr für ein Datumsformat habt, müsst Ihr die Werte bei date anpassen.
Wenn Ihr in der Kommandozeile date eingibt und Return drückt, dann seht Ihr das Datumsformat.
Mein Datumsformat ist 2005-12-30
Also:
- gehe zur 0. Stelle und kopiere 4 Zeichen (%date:~0,4%)
- gehe zur 5. Stelle und kopiere 2 Zeichen (%date:~5,2%)
- gehe zur 8. Stelle und kopiere 2 Zeichen (%date:~8,2%)
Ergibt 20051230

Ihr könnt somit auch die anderen Log Dateien, wie error.log, ... rotieren lassen.

2.) Ihr startet "Geplante Tasks" (Start->Programme->Zubehör->Systemprogramme)
3.) Geplanten Task hinzufügen doppelklicken
4.) Die gerade erstellte BAT-Datei auswählen und weiter
5.) Die Häufigkeit einstellen. Z.B. Monatlich am 1. um 00:00
6.) Nun am besten den Administrator mit Passwort zum Ausführen des Tasks angeben.
7.) fertig
MisterX
 
Posts: 49
Joined: 06. July 2004 18:16
Operating System: Win7 Ultimate x64 SP1 de/en

Postby deepsurfer » 30. December 2005 14:47

Super ausführlich beschrieben... Danke !

Hast du auch an das "rotatelogs.exe" im \xampp\apache\bin\ verzeichnis gedacht, das führt deine Täglichen Logfilespeicherung mit Datums angabe auch aus, ohne die Dienste stopen zu müssen.

PS:
Nichts gegen deine Ausführungen !

gruss
Deep
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby MisterX » 30. December 2005 14:51

Ja, allerdings habe ich das damit nie richtig hinbekommen.
Wenn einer das auch nochmal so ausführlich beschreiben könnte, wäre es gut.
MisterX
 
Posts: 49
Joined: 06. July 2004 18:16
Operating System: Win7 Ultimate x64 SP1 de/en

Postby deepsurfer » 30. December 2005 14:54

chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby MisterX » 30. December 2005 15:02

Werde ich mal probieren.
Allerdings wenn ich das richtig sehe, dann wird die access.log nicht "geleert".
Denn ich will die nicht so riesig haben, deswegen jeden Monat eine neue.
MisterX
 
Posts: 49
Joined: 06. July 2004 18:16
Operating System: Win7 Ultimate x64 SP1 de/en

Postby deepsurfer » 30. December 2005 15:08

Also die Hilfe des Rotatlogs.exe besagt folgendes
Code: Select all
C:\xampp\apache\bin>rotatelogs.exe -?
Usage: rotatelogs.exe [-l] <logfile> <rotation time in seconds> [offset minutes
from UTC] or <rotation size in megabytes>

Add this:

TransferLog "|rotatelogs.exe /some/where 86400"

or

TransferLog "|rotatelogs.exe /some/where 5M"

to httpd.conf. The generated name will be /some/where.nnnn where nnnn is the
system time at which the log nominally starts (N.B. if using a rotation time,
the time will always be a multiple of the rotation time, so you can synchronize
cron scripts with it). At the end of each rotation time or when the file size
is reached a new log is started.

C:\xampp\apache\bin>


Wenn man "rotatelogs.exe" als suchwort im google eingibt, dann erhält man einige sehr gute Beschreibungen wie man den logrotate einsetzen kann.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby MisterX » 30. December 2005 15:19

Ach jetzt weiß ich auch wieder, warum ich es damit nicht machen wollte.

"<rotation time in seconds>"

Da ja jeder Monat unterschiedlich lang ist, geht das schlecht.
Und täglich muss nicht unbedingt seien.
Eventuell jede Woche, also "604800" Sekunden.
MisterX
 
Posts: 49
Joined: 06. July 2004 18:16
Operating System: Win7 Ultimate x64 SP1 de/en

Postby deepsurfer » 30. December 2005 15:32

;) ...wie gesagt nix gegen dein Script, es ist Ausführlich..
Dafür halt nochmal ein DANKE im namen aller !
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 31 guests