У мене є два окремі каталоги. Користувач завантажує файл у перший. У фоновому режимі працює cronjob, який копіює файли кожні 5 хвилин у другий каталог.
Що станеться, якщо користувач не закінчив завантаження і cronjob копіює файли? Зауважте, що два каталоги належать різним користувачам, cronjob виконується як root.
cp
Не чекатиме, коли файл буде повністю завантажений. Оскільки ми очікуємо, що швидкість передачі мережі нижче, ніж просто копіювання файлу з одного місця в інше всередині того самого хоста, то в якийсь момент cp
досягне поточного кінця файлу і припинить копіювання. Вирішення вашої проблеми може бути простим: спочатку користувач завантажує файл із якимсь спеціальним набореним ім'ям файлу (наприклад, заздалегідь передбаченим .
(крапковий символ). Коли передача виконана, користувач перейменовує його на початкове ім'я. Потім завдання cron виглядає лише для файлів, які не починаються .
.