У меня есть два отдельных каталога. Пользователь загружает файл в первый. Theres cronjob работает в фоновом режиме, который копирует файлы каждые 5 минут во второй каталог.
Что произойдет, если пользователь не завершил загрузку и cronjob скопирует файлы? Обратите внимание, что эти два каталога принадлежат разным пользователям, cronjob выполняется как root.
cp, не будет ждать, пока файл полностью загружен. Поскольку мы ожидаем, что скорость передачи по сети ниже, чем просто копирование файла из одного места в другое на том же хосте, то в определенный момент cpон достигнет текущего конца файла и прекратит копирование. Решение вашей проблемы может быть простым: сначала пользователь загружает файл с каким-то специально искаженным именем файла (например, с префиксом .(символ точки). Когда передача завершена, пользователь переименовывает его в исходное имя. Затем задание cron выглядит только для файлов, которые не начинаются с ..