access_log/error_log richtig löschen

Apache, Lighttpd, nginx, Cherokee
amiga1200
Posts: 208
Joined: 2007-01-13 19:58

access_log/error_log richtig löschen

Post by amiga1200 » 2008-12-01 14:40

wie kann ich die access_log und error_log wieder auf 0 Byte bekommen?

lösche ich beide Dateien mit rm , erstellt Apache erst beim neustart neue leere Dateien.
order ist vielleicht
cp dummy access_log der richtige weg? # access_log mit einer leeren Datei überschreiben

(das ganze im natürlich per Script im Cron ausführen lassen.)

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: access_log/error_log richtig löschen

Post by Roger Wilco » 2008-12-01 20:55

amiga1200 wrote:lösche ich beide Dateien mit rm , erstellt Apache erst beim neustart neue leere Dateien.

Damit der Apache httpd seine File Handles schließt und neue Logdateien anlegt, musst du ihm das Signal HUP schicken (-> `man kill`).

danton
Posts: 47
Joined: 2006-01-10 17:45

Re: access_log/error_log richtig löschen

Post by danton » 2008-12-02 08:26

Ich verwende auch Logrotate, aber der aus irgendwelchen Gründen nicht in Frage kommt, sollte auch ein kleine Shell-Script weiterhelfen.

Dort dann als erstes die vorhandenen Logfiles verarbeiten (was auch immer damit passieren soll) und anschließend umbenennen oder löschen.
Die leere Log-Datei würde ich dann mit touch access.log bzw. touch error.log anlegen.
Anschließend ggfl. mit chown www-data.www-data access.log error.log den Owner wieder anpassen (einfach bei der vorhandenen Datei nachschauen, wem sie derzeit gehört, möglicherweise www-data).
Nun dem Indianer einmal einen Reload unterjubeln, bei Debian mit /etc/init.d/apache2 reload, dürfte bei anderen Linux-Distries ähnlich sein.

Aber an deiner Stelle würde ich trotzdem einen Blick auf logrotate werfen, der ist eigentlich sehr mächtig.

dukepyrolator
Posts: 38
Joined: 2004-03-12 06:51

Re: access_log/error_log richtig löschen

Post by dukepyrolator » 2008-12-08 13:31

Mit "cp /dev/null error_log" wird die Dateigrösse auf "0" zurückgesetzt, ohne die Datei zwischendurch zu löschen. Apache schreibt ohne Neustart bzw. SigHUP wieder in diese Datei.

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: access_log/error_log richtig löschen

Post by daemotron » 2008-12-10 11:34

matzewe01 wrote:Warum einfach, wenn es auch kompliziert geht?

> logfile.

Das ist Shell-abhängig. Aber wer was anderes als die Bash nutzt, weiß ohnehin, was er/sie tut :wink:

SIGHUP ist eigentlich nur notwendig, wenn die Logdatei umbenannt/verschoben/sonstwie rotiert wurde, da dann der File Pointer, den Apache sich offen hält, ins Leere zeigt. Mit einem SIGHUP wird veranlasst, dass Apache einen neuen File Handle öffnet, der dann wieder auf die korrekte Datei verweist.

Das direkte Manipulieren der Logdatei ist zwar technisch möglich, da Apache kein exklusives File Handle öffnet, aber da Schreiboperationen auf Dateien über einen Puffer laufen, kann es sein, dass Teile von Logmeldungen verloren gehen; je nachdem, wann der Kernel den Puffer flusht und die Bits tatsächlich auf die Platte schiebt. Davon sollte man also besser die Finger lassen...

User avatar
cpedv
Posts: 15
Joined: 2008-12-25 15:56
Location: Köln

Re: access_log/error_log richtig löschen

Post by cpedv » 2008-12-25 22:07

Ich benenne sie immer um als xxx-old1.log usw. und beim reload vom Apachen legt er wieder eine neue log Datei an.

Selbst wenn ich sie lösche, legt bei mir der Apache nach einem reload eine neue an.

gruss Gero

mantano
Posts: 7
Joined: 2009-09-18 18:07

Re: access_log/error_log richtig löschen

Post by mantano » 2009-09-18 18:15

Hi

Durch Google bin ich auf die seite angekommen. Ich möchte auch meine acces_log und error_log mit Crontab Täglich löschen. Welche Befehl müsste ich benutzen. Kann mir Bitte jemand ein Tipp geben.

Debian 4
Linux
Plesk 92

LG

papabaer
Userprojekt
Userprojekt
Posts: 170
Joined: 2009-05-14 17:40
Location: Halle (Saale)

Re: access_log/error_log richtig löschen

Post by papabaer » 2009-09-18 18:43

Öh *grübel* steht doch genau in diesem Thread?

logrotate, kill, rm, ...

mantano
Posts: 7
Joined: 2009-09-18 18:07

Re: access_log/error_log richtig löschen

Post by mantano » 2009-09-18 21:37

PapaBaer wrote:Öh *grübel* steht doch genau in diesem Thread?

logrotate, kill, rm, ...


Ja das hilft mir nicht weiter, ich fragte welche befehl ich genau bei crontab einfügen müsste.

Wen ich das logrotate, kill, rm, ... bei crontab einfüge wie soll das den passiern ? ich weis für leute die ahnung haben ist das kein Problem. kill und rm ist schon klar aber ich brauche den volle code.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: access_log/error_log richtig löschen

Post by Joe User » 2009-09-18 22:13

Mantano wrote:Durch Google bin ich auf die seite angekommen. Ich möchte auch meine acces_log und error_log mit Crontab Täglich löschen. Welche Befehl müsste ich benutzen. Kann mir Bitte jemand ein Tipp geben.

Bitte nochmal lesen:
matzewe01 wrote:Also eigentlich ist dafür "logrotatehttp://www.linux-praxis.de/lpic1/manpages/logrotate.html" gedacht.
Dir ist klar, dass Du im Bedarfsfall Beweispflichtig bist und das löschen von Logfiles nicht der richtige Weg ist.

Und dann per Google auf das hier stossen: http://www.debian-administration.org/articles/117
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

mantano
Posts: 7
Joined: 2009-09-18 18:07

Re: access_log/error_log richtig löschen

Post by mantano » 2009-09-18 23:31

Viel ahnung habe ich davon nicht, fange erst an mich mit Linux zu beschäftigen, Deshalb versuche ich ganz Vorsichtig zu sein. Deshalb Bitte ich um verständnis.

Also bei crontap einfach dies einfügen ( logrotate, kill, rm, ) und es werden die access_log/error_log gelöscht (Richtig)

Und wie ich das verstanden habe mann sollte nicht löschen, Und dafür soll dies sein.
http://www.debian-administration.org/articles/117

Wie ich hier verstanden habe soll ich bei logrotate.config dies einfügen ( Richtig )

Code: Select all

/var/log/fred/*.log {
  daily
  missingok
  rotate 7
  compress
  delaycompress
  create 640 fred fred
  sharedscripts
     /etc/init.d/fred restart
  endscript
}


LG

mantano
Posts: 7
Joined: 2009-09-18 18:07

Re: access_log/error_log richtig löschen

Post by mantano » 2009-09-19 01:17

Danke matzewe01, Nur zu Sicherheit, Einfach die inhalte von /etc/logrotate.d/apache und logrotate.conf gegen deine erzetsen ( Richtig )

LG