
Recebo arquivos através de um serviço em intervalos estranhos e preciso tê-los disponíveis em uma pasta por 72 horas antes de serem arquivados em uma pasta diferente. Eu gostaria de automatizar esse processo. Idealmente, este seria um serviço que monitora a pasta "em uso" em busca de novos arquivos, anota a hora de sua chegada e os move para o arquivo 3 dias depois.
Atualmente, estou executando uma entrada crontab que é executada a cada 72 horas para mover todo o conteúdo da pasta em uso para a pasta de arquivo. Isso causa um problema de sincronização entre a janela de disponibilidade de um determinado arquivo e sua movimentação quando não for mais necessário.
Responder1
Algo assim funcionará:
find /source/location -maxdepth 1 -mtime +3 -type f -exec mv "{}" /destination/location/ \;
Como isso funciona:
find
procurará itens em/source/location
-maxdepth 1
limitará a pesquisa apenas ao diretório especificado, ignorando os subdiretórios-mtime +3
limitará os resultados a 3 diasou mais-type f
limitará os resultados apenas a arquivos-exec
irá executar um comando sobre esses resultados, neste caso émv
"{}"
find
é para onde irá o resultado\;
informafind
que o comando passadoexec
está completo
Coloque isso em seu cron job e execute-o de hora em hora, se desejar. Somente arquivos com 72 horas ou mais serão movidos