Archiv verlassen und diese Seite im Standarddesign anzeigen : erledigt Apache Log-Dateien löschen
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
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:)
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)
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:)
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
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
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:)
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:)
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.