34 votos

¿Borrar todo el /var/log?

¿Puedo borrar todo en /var/log ? ¿O sólo debo borrar los archivos (recursivamente) en /var/log pero dejar las carpetas?

¿Alguien tiene una buena rm línea de mando? (Mis habilidades administrativas me ponen nervioso.)

Nota: Estoy usando Debian. No estoy seguro de qué versión.

3 votos

Borrar los archivos de registro es una mala idea (también tendrá que encontrar cada proceso en ejecución que tenga su propio archivo de registro y "matar -HUP", un reinicio suave que resultará en que el programa recree cualquier archivo de registro necesario). Te aconsejo encarecidamente que no borres los archivos de registro, confía en utilidades como logrotate para gestionar el contenido de /var/log por ti de forma automática (hace cosas como HUP los procesos) Si se me permite, me gustaría abordar esto desde un ángulo diferente. ¿Qué problema estás tratando de resolver que te ha llevado a considerar esto?

25voto

Crippeoblade Puntos 1301

En lugar de borrar los archivos, deberías rotarlos, por ejemplo, usando logrotate .

Nunca se sabe cuándo se necesitarán los registros de hace tiempo, así que es mejor archivarlos (hasta una edad razonable, por ejemplo, 3 meses).

logrotate puede comprimir sus viejos archivos de registro para que no ocupen mucho espacio en el disco.

3 votos

logrotate también puede eliminar los archivos más antiguos.

9 votos

Bueno, en mi opinión, borrar todos los registros puede tener mucho sentido en algunos casos. Por ejemplo, quiero construir una imagen de máquina virtual para usarla en nuevos despliegues. No hace falta decir que me gustaría que fuera un sistema realmente limpio sin ningún registro, historial, caché, etc. guardado.

3 votos

Lo siento, pero mirar archivos de registro de hace tres meses es arqueología. Si recoges registros para identificar problemas, entonces evalúalos rápidamente.

25voto

bindbn Puntos 3542

Borrar todos los archivos:

find /var/log -type f -delete

Borrar todo el .gz y el archivo rotado

find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"

Intenta ejecutar el comando sin "-borrar", para probarlo.

1 votos

He encontrado esto útil para limpiar los archivos de registro de una caja Vagrant antes de empaquetar.

18voto

Lawrence Puntos 203

Si borras todo en /var/log, lo más probable es que acabes con toneladas de mensajes de error en muy poco tiempo, ya que hay carpetas en ellas que se espera que existan (por ejemplo, exim4, apache2, apt, cups, mysql, samba y más). Además: hay algunos servicios o aplicaciones que no crearán sus archivos de registro, si no existen. Esperan que al menos un archivo vacío esté presente. Así que la respuesta directa a su pregunta es en realidad "¡¡¡No hagas esto!!!" .

Como Joschi ha señalado, no hay razón para hacer esto. Tengo servidores debian en funcionamiento que no han tenido un solo archivo de registro borrado en años.

0 votos

No me había dado cuenta. Es bueno saberlo. +1 + cambió mi aceptar.

1 votos

Acabo de hacer esto. Ojalá. Había leído esta respuesta antes

0 votos

Hay razones válidas para eliminar los archivos de registro, en mi opinión. Por ejemplo, estás exportando una máquina virtual para que la usen otros, pero no quieres que la imagen de la máquina virtual contenga detalles de todo lo que ha ocurrido antes de la exportación.

11voto

Dror Puntos 181

Estoy clonando máquinas virtuales de un maestro. Tiene mucho sentido limpiar el registro del maestro para que cuando boot los clones no se obtenga el registro del maestro. Lo hice en tcsh:

cd /var/log
foreach ii ( `find . -type f` )
foreach? cp /dev/null $ii
foreach? end

que borra los registros pero mantiene los archivos.

0 votos

Esto debería limitarse a un caso de uso como el que describes.

5 votos

En bash: find /var/log/ -type f -exec cp /dev/null {} \;

2voto

sancowinx Puntos 66

Puedes usar la opción ctime para encontrar archivos viejos... por ejemplo:

find -ctime +30

Como explica bindbn, primero intente encontrar los archivos fetch y después use la opción delete :D

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: