es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script de Unix para eliminar archivos después de x días, pero sin fecha de creación.

Quiero crear un script de Unix que elimine los archivos después de 5 días desde nuestra Synology. El siguiente script hace esto:

find /volume2/CHECKS -type f -mtime +5 -delete

Pero observa la fecha de creación, no la fecha en que se agregó a la carpeta compartida. ¿Existe alguna opción para crear un script que elimine los archivos 5 días después de agregarlos a la carpeta?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no existe una opción dentro de Unix para eliminar archivos basados en cuándo fueron agregados a una carpeta compartida. El comando find solo puede buscar en función del tiempo de modificación, acceso o cambio de estado.

    Sin embargo, hay algunas soluciones potenciales dependiendo de tus necesidades. Una opción es usar un comando diferente, como ls, para listar archivos según su hora de creación y luego utilizar la salida de esta lista en el comando rm para eliminar los archivos. Por ejemplo:

    ls -t /volume2/CHECKS | tail -n +6 | xargs rm
    

    Este comando ordena los archivos en el directorio CHECKS según su hora de creación (-t), salta los 5 archivos más recientes (tail -n +6) y luego elimina los archivos restantes utilizando rm con xargs.

    Otra opción es utilizar software de sincronización de archivos, como rsync, para copiar archivos desde la carpeta compartida a otra ubicación que tenga un script para eliminar archivos basados en su hora de creación. Podrías configurar una tarea programada para ejecutar este script de sincronización todos los días, lo que efectivamente eliminaría los archivos que tienen más de 5 días. Sin embargo, este enfoque requeriría más configuración y mantenimiento.

    En general, depende de tus necesidades y limitaciones específicas cuál sería el mejor enfoque para ti.

Comments are closed.