PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : erledigt Apache Log-Dateien löschen



matwol
19.10.2008, 15:06
Hallo,

melde mich auch mal wieder.
Habe es nun geschafft, meine Wetterstation und die SLUG zu verbinden.
Linux-Version = UNSLUNG auf einem USB-Stick an Port 2.
Am Port 1 hängt ein USB-Serial-Adapter.

Server = Apache

http://www.gargi.org/showthread.php?t=592&highlight=wetter

Im Verzeichnis "/opt/var/apache2/" befinden sich die Dateien error_log und access_log. Die wachsen mit der Zeit ganz schön an.

Nun meine Frage: Wie kann man diese Dateien entleeren oder auf eine bestimmte Grösse begrenzen. Soviel habe ich schon gelesen, dass man sie nicht einfach löschen sollte. Ein Logrotate habe ich nirgends gefunden.:confused:

Mittlerweile bin ich ein richtiger Fan von der kleinen Schnecke geworden.:cool:

Grüsse, Wolfgang

matwol
19.10.2008, 16:24
Uups,:o

jetzt war ich wohl ein wenig voreilig, denn in dem Howto für die NSLU2 steht ja was von Logrotate, aber wenn ich diesen Thread schon gestartet habe, gleich noch ein paar Fragen:

Kann man die Grösse der Log-Dateien einstellen z.B. 256 KB ?

Kann man die Logbucherstellung des Apache auch ganz abschalten und nur bei Bedarf aktivieren.
Was spricht dafür oder dagegen das zu tun ?

In meinem Fall ist keine HTML-Seite auf dem Server vorhanden. Es werden nur Grafiken, Variablenlisten für javascript und aufgezeichnete Wetterdaten auf der SLUG abgelegt.

Die Aufbereitung der Daten erfolgt auf der Domainseite meiner Homepage und auf die SLUG wird mittels DynDns zugegriffen.

Grüsse, Wolfgang:)

Gargi
19.10.2008, 17:24
Hallo Wolfgang! Haste das schonmal ausprobiert?
http://www.myslug.de/index.php?title=Firewall#Syslog_.C3.A4ndern

cu
Gargi

Benbensimpson
19.10.2008, 20:08
nabend

habe so etwas änliches für meine ftp log datei
evtl kann man das ja für den apache umbasteln

KLICK KLACK (http://www.gargi.org/showpost.php?p=829&postcount=12)

matwol
19.10.2008, 20:40
Hallo Gargi und Benbensimpson,

erst mal Dank für Eure Antwort.

Denke mal, Du hast den Absatz ab logrotate gemeint. Habe Logrotate installiert und bin dann weiter nach Anleitung vorgegangen.
:confused:Der Link von Dir enthält folgende Zeile:

/opt/var/log/messages opt/var/log/syslog opt/var/log/kern.log opt/var/log/d**** {

Stimmt das mit den Sternen?

Wenn ich hier http://www.gargi.org/showthread.php?t=156 in Deinem Howto nach unten blättere steht es so drin:

compress

/opt/var/log/messages opt/var/log/syslog opt/var/log/kern.log opt/var/log/debug {
rotate 5
postrotate
/bin/killall syslogd
/bin/killall klogd
/bin/killall -HUP syslog-ng
endscript
}

include /opt/etc/logrotate.d

Mit dieser Conf habe ich dann folgendes probiert:

Habs mal über die Kommandozeile versucht, so das Ergebnis:

# logrotate -f /opt/etc/logrotate.conf
error: stat of /opt/var/log/messages failed: No such file or directory
error: stat of opt/var/log/syslog failed: No such file or directory
error: stat of opt/var/log/kern.log failed: No such file or directory
error: stat of opt/var/log/debug failed: No such file or directory

Habe ich die Anweisung [# logrotate -f /opt/etc/logrotate.conf] richtig eingeben?

Auf meiner SLUG sind eigentlich nur der Vsftp- und der Apache-Server installiert. Leider komm ich mit dem Tip von Benbensimpson auch nicht ganz zurecht. Könnt Ihr mir das bitte etwas ausführlicher erklären.

Wie gesagt: Die Log-Dateien befinden sich hier: /opt/var/apache2/log/

Grüsse, Wolfgang:)

Gargi
19.10.2008, 21:15
Das muss in der Tat debug heißen. Werde ich gleich mal ändern.

cu
Gargi

Benbensimpson
19.10.2008, 21:24
füg es mal in die crontab ein

30 23 * * 6 root /opt/sbin/logrotate -f /opt/etc/logrotate.conf &>/dev/null

und andere es doch mal auf alle 5 min dann siehst du ja ob es geht
also so
*/5 * * * * root /opt/sbin/logrotate -f /opt/etc/logrotate.conf &>/dev/null

Benbensimpson
19.10.2008, 21:45
und erweitere das mal

/opt/var/log/messages opt/var/log/syslog opt/var/log/kern.log opt/var/log/debug

noch mit

/opt/var/apache2/log/acces_log und /opt/var/apache2/log/error_log

dann sollte es gehen

matwol
20.10.2008, 09:31
Hallo und guten Morgen,


und erweitere das mal

/opt/var/log/messages opt/var/log/syslog opt/var/log/kern.log opt/var/log/debug

noch mit

/opt/var/apache2/log/acces_log und /opt/var/apache2/log/error_log

hab das mal druchgeführt.

Klappt auch: Im Verzeichnis /opt/var/apache2/log/ waren die Dateien error_log.1.gz und access_log.1.gz vorhanden, nur keine neuen .._log - Dateien.

Der Apache - Server war auch nicht mehr erreichbar. Erst mit /opt/etc/init.d/S80apache startete er wieder neu und erzeugte neue .._log - Dateien.

Bleiben da möglicherweise auch noch andere Prozesse stehen.

Kann man das ganze auch mit einem Script lösen, dass z.B. den Apache stoppt, logrotate durchführt und den Indianer dann wieder auf den Kriegspfad schickt. ;)

Oder sollte ich es mit Benbensimpson's Routine versuchen:


nabend

habe so etwas änliches für meine ftp log datei
evtl kann man das ja für den apache umbasteln

KLICK KLACK

Schaut doch mal auf diesen Link http://www.linux-praxis.de/lpic1/manpages/logrotate.html

Da wird logrotate etwas anders beschrieben, z.B. weekly oder size=100k

Heisst das: für die Anweisung weekly brauche ich dann keinen Cronjob?
Ist das auch für die SLUG relevant, oder ist das für eine andere Linux-Version und funktioniert auf der SLUG gar nicht ?

Wünsche noch einen schönen Tag!

Grüsse, Wolfgang:)

Benbensimpson
20.10.2008, 12:08
eine neue log datei gibt es auch erst wieder bei einem zugriff oder einer system meldung wieder

habe es bei mir ausprobiert und es läuft ohne probleme

evtl kannste ja es ja von cron ausführen lassen zb nachts um 3 und trägst noch mit in den crontab ein das er 10 min später den apache neu starten soll

evtl so

50 5 * * 1,3,6 root /opt/sbin/logrotate -f /opt/etc/logrotate.conf &>/dev/null
und danach
0 6 * * * * root /opt/etc/init.d/S80apache &>/dev/null

nicht die beste lösung sollte aber funzen

matwol
21.10.2008, 07:54
Hallo Benbensimpson,

Guten Morgen und danke für den Tip.

Hab jetzt den Aufruf logrotate und den Neustart des Apache in ein Script gepackt.
Es funktioniert.

Grüsse, Wolfgang:)

matwol
25.10.2008, 08:24
hallo Benbensimpson,

habe "logrotate" wieder entfernt und mache das nun mit einem eigenen Script. Zuerst habe ich ich es nach Deiner Methode, siehe Zitat, probiert, hat auch geklappt.



#!/bin/sh

killall inetd 2>/dev/null

killall vsftpd >/dev/null

rm /opt/var/log/vsftpd.log

touch /opt/var/log/vsftpd.log

/bin/inetd &>/dev/null


Aber dann hab ich von einem Kumpel erfahren, dass man "killall", "rm" und "touch" gar nicht braucht. Man kann die vorhande Log-Datei auch entleeren und das geht so:

echo -n > /opt/var/log/vsftpd.log

Die Datei ist dann leer, das Dateihandlig bleibt erhalten. So mache ich es jetzt auch mit den Log-Dateien des Apache-Servers. Allerdings kopiere ich erst alle Dateien in ein Verzeichnis, die werden dann noch gepackt.

Es klappt wunderbar.

Grüsse, Wolfgang:)