
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:
find
buscará artículos en/source/location
-maxdepth 1
limitará la búsqueda solo al directorio especificado, ignorando los subdirectorios-mtime +3
limitará los resultados a 3 díaso mayor-type f
limitará los resultados solo a archivos-exec
ejecutará un comando sobre esos resultados, en este caso esmv
"{}"
find
es donde irá el resultado de\;
dicefind
que el comando pasadoexec
está 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