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