Eliminación de archivos log

Buen día, quisiera su ayuda para la elaboración de un shell el cual debe de borrar todos los archivos logs que se generan diariamente, excepto los últimos 7 días:
Los archivos se generan en el directorio /log y se llaman ULOG-EQUIPO.MMDDAA
Gracias !

1 Respuesta

Respuesta
1
Mediante el comando find lo tienes muy fácil. Si quieres le echas un vistazo (man find). Pero te cuento.
Mediante:
Find /log -type f -ctime +7
Asi puedes ver los ficheros (-type f) que han cambiado hace más de 7 días (-ctime +7) desde el subdirectorio /log (bajo éste, es decir, todo lo que cuelga de él si tuviese más subdirectorios).
También puedes poner:
find /log -name "ULOG-EQUIPO.*" -ctime +7
Este otro busca lo miemo pero sólo para ficheros llamados ULOG-EQUIPO. *.
Pruébalos.
Bueno, pues para borrarlos de un plumazo, se añade -exec rm -f {} \; al find anterior. Cuidado, que esto te lo borra del tirón!
find /log -type f -ctime +7 -exec rm -f {} \;
find /log -name "ULOG-EQUIPO.*" -ctime +7 -exec rm -f {} \;
Si lo que quieres es planificarlo para que se ejecute todos los días a las 12 de la noche (o cuando quieras) y al llegar esté todo limpito de esos logs, dímelo y te digo cómo programarlo (en el crontab).
Carloscai, por favor, contestame para poder avanzar y cerrar el tema. O ciérralo valorando la respuesta.
Antes que nada perdón por la tardanza, pero no había podido entrar a la página de nuevo.
Muchas Gracias por tu respuesta, pondré en practica tus consejos.
Saludos desde Monterrey Nuevo León, Mexico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas