¿Cómo borrar el contenido de un archivo error.log pero mantener el archivo intacto?


25

Quiero borrar el contenido del archivo error.log (archivo de registro de errores nginx), pero en realidad no quiero eliminar el archivo.

¿es posible?

ejecutando ubuntu

Respuestas:


68

Puedes usar esto:

>error.log

(escrito así, una redirección de salida vacía)

o

truncate -s0 error.log

@Ignacio: Si el archivo ya existe, cualquiera lo truncará. Si el archivo no existe, cualquiera lo creará.
Pausado hasta nuevo aviso.

Tienes razón, mi mal.
Ignacio Vazquez-Abrams

La última opción funcionó para mí, por alguna razón sudo> error.log no funcionó para mí (ubuntu 12.04)
davidkonrad

55
@davidkonrad: ya deberías ser root para que la redirección funcione, ya que se realiza antes de que sudosurta efecto. O puede hacerlosudo bash -c '>error.log'
pausado hasta nuevo aviso.

1
@ divHelper11: En mi respuesta, digo que es una "redirección de salida vacía". Eso significa que no se está enviando "nada" al archivo nombrado y que sobrescribe cualquier contenido existente. Es similar echo "some words" > output.txtpero no pasa nada.
Pausado hasta nuevo aviso.

1

Confundirás al demonio. Borre el archivo y luego envíelo SIGHUPa nginx.


SIGHUP? ¿No puedo cerrar nginx, purgar el archivo y luego comenzar? Quiero saber cómo borrar el archivo por el bien del conocimiento también.
user27449

Si quisieras, claro. Pero eso interrumpiría el servicio.
Ignacio Vazquez-Abrams

Creo que tanto la redirección nula como la truncateatómica son atómicas, por lo tanto, mientras no se realice ninguna búsqueda (especialmente si la única operación que está ocurriendo es agregar), no debería ser perjudicial.
Pausado hasta nuevo aviso.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.