Ir al contenido principal

Buscar y borrar archivos al mismo tiempo

En mi trabajo me asignaron como tarea la creación de un cron para el respaldo de algunos archivos y el borrado de otros.

La tarea del cron no presentaba ninguna complicación, lo interesante de la tarea surge cuando debo el cron debe localizar unos archivos (logs) que se genera un aplicativo instalado en el servidor y que deben ser borrados para liberar espacio conservando únicamente los últimos 3 días.

Esta tarea se empezó a llevar de forma manual hasta que me dí a la tarea de buscar en internet alguna herramienta que de una u otra forma me permitiera automatizar dicho proceso y no tuve que buscar mucho, encontre un comando que en conjunto con otras instrucciones me permitió hacer lo que andaba buscando.

El comando no es otro más que el find y esto fue lo que hice. La instrucción implementada fue esta:

[abc@home]$ find /opt/sfs/logs -type f ( ! -name '*tar' -a ! -name 'bk_*' ) -atime +3 -exec rm {} \;

Lo que hace dicha instrucción es busque y borre de la ruta /opt/sfs/logs los archivos cuyo nombre terminen en tar o inicien con bk_ y que tengan más de 3 días de antigüedad.

La instrucción debe usarse con mucho cuidado pues no te preguntará si realmente quiere borrar los archivos, simplemente lo que coincide con el criterio de búsqueda lo borra.

Estas son otras opciones que se pueden agregar a este tipo de instrucciones:

-type d/f/l Especifica que es un directorio (d) / fichero (f) / enlaces (l)
-name "Do*****ents" Lo que buscamos (Distingue entre mayusculas y minusculas)
-iname "Resumen" Lo que buscamos (NO distingue entre mayusculas y minusculas)
-print Que lo muestre por pantalla (No suele ser necesario)
-size +10k Que sea superior a 10 Kb
-atime +5 Que se haya accedido hace 5 dias
-exec Ejecuta una comando ... -exec cp {} /tmp ; --> {} --> Archivos de la busqueda
-ok Ejecuta un comando (Pide confirmacion) --> -ok cp {} /tmp ;
-user usuario Filtra por dueño de directorio/archivo
-group grupo Filtra por grupo

Puedes encontrar información relacionada en:
Respecto de las marcas de tiempo en linuxtotal.com.mx
Respecto al comando find y sus opciones luchoedu.org

Comentarios

Entradas populares de este blog

Conexi - Python, Control de existencias

He decidido colgar en la web una aplicación que hice hace ya muchos días utilizando Python , las Wx , VisualWx y MySQL para la plataforma windows. El programa lo bautice CONEXI (Control de Existencias), sirve para la administración del inventario que rota entre bodegas ubicadas en diferentes ciudades pero que son de la misma empresa. El software fue creado para un almacén de electrodomésticos de mi pueblo que tiene sedes en dos ciudades y que necesita saber que colchón, nevera, tv, etc; fue despacha desde y hacia dónde y qué existencias quedaron en cada bodega. No se si me hice entender ;) Puedes descargar el código fuente desde aquí y si tienes alguna inquietud o no te funciona algo me puedes enviar un mail .

Tutorial Boa Constructor Showmedo

Para aquellos interesados en consultar otros video tutoriales sobre Python con Boa-Constructor sin importar el idioma, pueden consultar este link el cual les llevará directamente a una serie de 9 tutoriales sobre Boa-Constructor alojados en la web de Showmedo .

Lección No. 8

Nuevamente retomaremos la lección 6 con sus últimas modificaciones, o sea, la de la Lección No. 7, con el fin de aprender a hacer reportes de dos tipos: en html para visualizar en el navegador y en formato pdf. Materiales para esta lección El material de la lección número 6 El ReportLab que lo encontramos en..... 2 iconos de 16x16 para el menú reporte html y reporte pdf Lección No. 8 Recuperamos la última modificación que reposa en la lección No. 7, creamos un menú denominado Reportes y debajo de éste se mostrarán las opciones: Formato html y Formato Pdf, agregamos los íconos para el menú. Algo parecido a esto es lo que debemos tener: Y sin más preámbulos vamos a programar el menú Formato html; creamos entonces una función (ya debes saber cómo crear una función para un menú, si no es así entonces te recomiendo que leas las lecciones anteriores) a la que denominaremos genera_html y este es el código: En la parte superior del código debemos colocar las librerías que vamos a utilizar, as...