Come cancellare il contenuto di un file error.log ma mantenere intatto il file


25

Voglio cancellare il contenuto del file error.log (file di registro degli errori nginx), ma non desidero effettivamente eliminare il file.

È possibile?

eseguendo ubuntu

Risposte:


68

Puoi usare questo:

>error.log

(digitato in questo modo - un reindirizzamento di output vuoto)

o

truncate -s0 error.log

@Ignacio: se il file esiste già, verrà troncato. Se il file non esiste, entrambi lo creeranno.
In pausa fino a nuovo avviso.

Hai ragione, mia cattiva.
Ignacio Vazquez-Abrams il

L'ultima opzione ha funzionato per me, per qualche motivo sudo> error.log non ha funzionato per me (ubuntu 12.04)
davidkonrad,

5
@davidkonrad: Dovresti già essere root per far funzionare il reindirizzamento poiché è eseguito prima che abbia sudoeffetto. Oppure puoi farlosudo bash -c '>error.log'
pausa fino a nuovo avviso.

1
@ divHelper11: Nella mia risposta dico che è un "reindirizzamento dell'output vuoto". Ciò significa che "niente" viene inviato al file indicato e che sovrascrive qualsiasi contenuto esistente. È simile echo "some words" > output.txtma non sta succedendo nulla.
Messo in pausa fino a nuovo avviso.

1

Confonderai il demone. Cancella il file quindi invia SIGHUPa nginx.


SIGHUP? Non riesco a chiudere nginx, eliminare il file, quindi avviare? Voglio sapere come cancellare il file anche per amor di conoscenza.
user27449

Se lo volessi, certo. Ma ciò interromperebbe il servizio.
Ignacio Vazquez-Abrams il

Penso che sia un reindirizzamento nullo sia un a truncatesiano atomici, quindi fino a quando non viene eseguita alcuna ricerca (specialmente se l'unica operazione che sta accadendo è accodare) non dovrebbe essere dirompente.
In pausa fino a nuovo avviso.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.