Estou tendo dois diretórios separados. O usuário carrega um arquivo no primeiro. Existe um cronjob em execução em segundo plano que copia os arquivos a cada 5 minutos para o segundo diretório.
O que acontece se o usuário não tiver concluído o upload e o cronjob copiar os arquivos? Observe que os dois diretórios pertencem a usuários diferentes, o cronjob é executado como raiz.
cp
, não esperará até o upload completo do arquivo. Como esperamos que a taxa de transferência de rede seja mais baixa do que apenas copiar o arquivo de um local para outro dentro do mesmo host, em algum momento cp
atingirá o final do arquivo atual e interromperá a cópia. A solução para o seu problema pode ser simples: primeiro, o usuário carrega o arquivo com algum nome de arquivo especialmente desconectado (por exemplo, anexado com .
(ponto)). Quando a transferência é concluída, o usuário o renomeia para o nome original. para os arquivos que não estão iniciando .
..