Automatizar el movimiento de archivos nuevos después de un período de tiempo determinado

Automatizar el movimiento de archivos nuevos después de un período de tiempo determinado

Recibo archivos a través de un servicio en intervalos impares y necesito tenerlos disponibles en una carpeta durante 72 horas antes de archivarlos en una carpeta diferente. Me gustaría automatizar este proceso. Idealmente, este sería un servicio que vigila la carpeta "en uso" en busca de archivos nuevos, anota la hora de su llegada y luego los mueve al archivo 3 días después.

Actualmente estoy ejecutando una entrada crontab que se ejecuta cada 72 horas para mover todo el contenido de la carpeta en uso a la carpeta de archivo. Esto provoca un problema de sincronización entre la ventana de disponibilidad de un archivo determinado y su movimiento cuando ya no es necesario.

Respuesta1

Algo como esto funcionará:

find /source/location -maxdepth 1 -mtime +3 -type f -exec mv "{}" /destination/location/ \;

Cómo funciona esto:

  • findbuscará artículos en/source/location
  • -maxdepth 1limitará la búsqueda solo al directorio especificado, ignorando los subdirectorios
  • -mtime +3limitará los resultados a 3 díaso mayor
  • -type flimitará los resultados solo a archivos
  • -execejecutará un comando sobre esos resultados, en este caso esmv
  • "{}"findes donde irá el resultado de
  • \;dice findque el comando pasado execestá completo

Agregue esto a su trabajo cron y ejecútelo cada hora si lo desea. Solo se moverán archivos que tengan 72 horas o más

información relacionada