Solución 1:
En lugar de eliminar los archivos, debe rotarlos, p. gramo. usando logrotate
.
Nunca se sabe cuándo necesitará realmente 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.
Solución 2:
Eliminar todos los archivos:
find /var/log -type f -delete
Eliminar todos los archivos .gz y rotados
find /var/log -type f -regex ".*\.gz$"
find /var/log -type f -regex ".*\.[0-9]$"
Intente ejecutar el comando sin "-delete", para probarlo.
Solución 3:
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 que al menos un archivo vacío esté presente. Entonces, la respuesta directa a su pregunta en realidad es "¡¡¡No hagas esto!!!" .
Como ha señalado joschi, no hay razón para hacer esto. Tengo servidores Debian en ejecución que no han eliminado un solo archivo de registro en años.
Solución 4:
Estoy clonando máquinas virtuales de un maestro. Tiene mucho sentido borrar el registro en el maestro para que cuando inicie los clones no 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 conserva los archivos.
Solución 5:
Limpiar todos los registros en un sistema Linux sin eliminar los archivos:
for CLEAN in $(find /var/log/ -type f)
do
cp /dev/null $CLEAN
done
Samba (/var/www/samba
) crea nombres de archivos de registro con direcciones IP, es posible que desee eliminarlos:
for CLEAN in $(find /var/log/samba -type f)
do
rm -rf $CLEAN
done