¿Puedo borrar todo en /var/log
? ¿O solo debería eliminar archivos (recursivamente) /var/log
pero dejar carpetas?
¿Alguien tiene una buena rm
línea de comando? (Mis habilidades administrativas me dejan nervioso).
Nota: estoy usando Debian. No estoy seguro de qué versión.
Respuestas:
En lugar de eliminar los archivos, debe rotarlos, por ejemplo, utilizando
logrotate
.Nunca se sabe cuándo necesitará los registros de hace algún tiempo, por lo que es mejor archivarlos (hasta una edad razonable, por ejemplo, 3 meses).
logrotate
puede comprimir sus archivos de registro antiguos para que no ocupen mucho espacio en disco.fuente
Si elimina todo en / var / log, lo más probable es que termine con toneladas de mensajes de error en muy poco tiempo, ya que hay carpetas allí 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 al menos un archivo vacío para estar presente. Entonces, la respuesta directa a su pregunta es "¡No hagas esto!" .
Como joschi ha señalado, no hay razón para hacer esto. Tengo servidores Debian en ejecución que no han tenido un solo archivo de registro eliminado en años.
fuente
Borrar todos los archivos:
Eliminar todos los archivos .gz y rotados
Intente ejecutar el comando sin "-delete", para probarlo.
fuente
Estoy clonando máquinas virtuales de un maestro. Tiene perfecto sentido borrar el registro en el maestro para que cuando arranque los clones no obtenga el registro del maestro. Lo hice en tcsh:
que borra los registros pero mantiene los archivos.
fuente
Limpieza de todos los registros en un sistema Linux sin eliminar los archivos:
Samba (
/var/www/samba
) crea nombres de archivo de registro con direcciones IP, es posible que desee eliminarlos:fuente
cp /dev/null $CLEAN
por> $CLEAN
.Puede usar la opción ctime para buscar archivos antiguos ... por ejemplo:
Como explica bindbn, primero intente encontrar los archivos de búsqueda y luego use la opción eliminar: D
fuente
/var/log
a menudo tiene permisosdrwxrwxr-x
, por lo que no se puede escribir a menos que el usuario sea root o pertenezca a un grupo privilegiado. Eso significa que los nuevos usuarios no pueden crear archivos de registro nuevos.Las aplicaciones que esperan iniciar sesión en un punto interno
/var/log
a menudo tocarán un archivo en algún lugar de la/var/log
jerarquía durante el tiempo de instalación (que a menudo ocurre con privilegios elevados),chmod
y posiblementechown
lo harán en ese momento a los permisos apropiados para los usuarios sin privilegios que serán utilizando la aplicaciónLos registros de Apache, por ejemplo, generalmente son escritos por
nobody
, que es un usuario con la menor cantidad de privilegios posible para que Apache haga su trabajo sin poner el sistema en un riesgo excesivo. Pero incluso una aplicación más común suele esperar poder escribir en un archivo de registro/var/log
.Entonces, ¿qué sucede si el archivo de registro y la ruta al archivo de registro no existen? Eso depende totalmente de la aplicación. Algunas aplicaciones omitirán silenciosamente el registro. Otros crearán muchas advertencias. Y otros simplemente rescatarán. No hay una regla rígida; depende de la vigilancia del desarrollador de la aplicación, así como de lo crítico que el desarrollador considere su capacidad para iniciar sesión. En el mejor de los casos, la aplicación intentará escribir en, o posiblemente crear y luego escribir en un archivo de registro en un destino dentro
/var/log
, y se encontrará incapaz de hacerlo porque lo está ejecutando un usuario que no tiene privilegios para escribir esa parte del sistema de archivos.Por lo tanto, la respuesta corta es no, no elimine todo
/var/log
: rompe los usuarios del contrato con los privilegios suficientes para hacer esas cosas con las aplicaciones que se ejecutan en su sistema, y causará algo de ruido, alguna falla silenciosa para iniciar sesión y alguna rotura total.La acción adecuada a tomar es configurar
logrotate
con los archivos de configuración apropiados. Por lo general, la rotación se asociará con un trabajo cron. La rotación puede basarse en intervalos, o en tamaño, o en ambos. Incluso es posible configurar reglas que eviten la rotación basada en intervalos si el archivo de registro todavía está vacío cuando expira el intervalo. La rotación puede incluir el envío de archivos de registro, compresión, eliminación, trituración, etc.El usuario promedio no necesitaría preocuparse demasiado por la rotación de registros. Los desarrolladores probablemente desearían asegurarse de que los registros que utilizan tengan reglas de rotación establecidas. De hecho, es probable que los desarrolladores tengan buenos modales para configurar la rotación de registros en el momento de la instalación de cualquier registro específico de software que el software creará y escribirá.
fuente
He implementado un limpiador simple aquí:
https://github.com/Lin-Buo-Ren/Coward-Unix-Log-Cleaner
Simplemente:
/var/log
^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$
^.*/.+\.old$
(sin distinción entre mayúsculas y minúsculas)/var/log
^.*/.+\.log$
(sin distinción entre mayúsculas y minúsculas)fuente
cree un script ejecutable e intente ejecutar como root si sudo no funciona para usted
fuente