>хотя тут мне сообщили что shell не даст скопировать недокаченный файл, типа
>он сам его локирует. Это действительно так? Нет конечно
1. линух(никсы) не винда, и не имеет moderate access к файлам.
2. shell ваще файлы не копирует, копирует утилита cp (в вашем случае scp).
3. файл удалить не вопрос т.к. при этом стирается запись из каталога (каталог это тоже файл), писатель и дальше будет писать т.к. дескриптор в процессе останется открытым и после окончания записи и закрытия дескриптора файл исчезнет уже физически (т.к. количество ссылок на inode файловой системы станет = 0.
В вашем случае видимо надо в скрипте анализировать вывод утилиты lsof перед перемещением и перемещать только файлы для которых нет открытых дескрипторв.
Еще вариант - просто перемещаем файлы. Невзирая на то пишут их или нет :)
Что прозойдет? для полностью скопированного файла все ок.
для неполностью скопированного файла - mv (или rename) перенесет файл в другой каталог при этом запись в него будет продолжаться (уже в новом каталоге!), т.к. дескриптор открыт. Останется только решить критично ли то что может сложиться ситуация что после insert в базу копируемого в данный момент файла может случиться абзац в сети и файл недокачается уже по причинам в сети?
Вышеописанный фокус с переносом открытого файла в который идет запись работает только если оба каталога находятся в одной файловой системе, на одном диске. Иначе mv (rename) вынуждена будет именно полностью переносить файл, а не перемещать запись из одного каталога в другой.
p.s. ну и эксперимент с scp нужен т.к. не наю я как он себя ведет.. cp вот не ругается=)
уф... =)