Wie lösche ich den Inhalt einer error.log-Datei, aber lasse die Datei intakt?


25

Ich möchte den Inhalt der Datei error.log (Nginx-Fehlerprotokolldatei) löschen, möchte die Datei jedoch nicht wirklich löschen.

Ist das möglich?

Ubuntu ausführen

Antworten:


67

Sie können dies verwenden:

>error.log

(einfach so getippt - eine leere Ausgabeumleitung)

oder

truncate -s0 error.log

@Ignacio: Wenn die Datei bereits vorhanden ist, wird sie von beiden abgeschnitten. Wenn die Datei nicht existiert, wird sie von beiden erstellt.
Bis auf weiteres angehalten.

Du hast recht, meine schlechte.
Ignacio Vazquez-Abrams

Die letzte Option hat bei mir funktioniert, aus irgendeinem Grund hat sudo> error.log bei mir nicht funktioniert (ubuntu 12.04)
davidkonrad

5
@davidkonrad: Sie müssten bereits root sein, damit die Umleitung funktioniert, da sie ausgeführt wird, bevor sie sudowirksam wird. Oder Sie können tunsudo bash -c '>error.log'
bis auf Weiteres angehalten.

1
@ divHelper11: In meiner Antwort sage ich, es ist eine "leere Ausgabeumleitung". Das bedeutet, dass "nichts" an die angegebene Datei gesendet wird und dass vorhandene Inhalte überschrieben werden. Es ist ähnlich wie, echo "some words" > output.txtaber es
passiert

1

Sie werden den Dämon verwirren. Löschen Sie die Datei und senden Sie sie SIGHUPan nginx.


SEUFZEND? Kann ich nginx nicht herunterfahren, die Datei löschen und dann starten? Ich möchte wissen, wie man die Datei aus Wissensgründen auch löscht.
User27449

Wenn du wolltest, sicher. Aber das würde den Service stören.
Ignacio Vazquez-Abrams

Ich denke, sowohl eine Null-Umleitung als auch eine truncatesind atomar, so lange keine Suche stattfindet (insbesondere, wenn die einzige Operation, die stattfindet, das Anhängen ist), sollte es nicht störend sein.
Bis auf weiteres angehalten.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.