LINUX.ORG.RU

Ответ на: комментарий от new_account

Мне надо обработать файл при условии, что он уже залился мне на фтп, например. lsof (fuser) мне покажет, что файл еще не полный. Таки да, кроме этих тулзов больше мне никто не поможет.

macumazan ★★
() автор топика
Ответ на: комментарий от macumazan

ни одна тулза тебе не скажет полный уже файл на ftp или ещё нет. Пример ситуации - клиент заливает файл, но по каким-то причинам недопосывает его до конца (мало ли что ему взбрело, или может у него поломка какая) и намеревается дописать чуть позже.

надо менять алгоритм заливки файлов. Юзер должен заливать файл под временным именем и только по завершению загрузки переименовывать в нормальное. Да, и сопровождать залитый файл контрольной суммой.

или использовать другой протокол (не ftp) гарантирующий полноту и целостность загрузок.

anonymous
()

Номер индексного дескриптора файла можно посмотреть используя команду ls -i «имя файла»
Далее ls /proc/*/fd/«полученный inod»
Если ls ничего не нашел, то файл никем не занят

bcormorant
()
Ответ на: комментарий от sdio

Да. ошибся.
Проверять надо листинг ls -l /proc/<PID>/fd
total 0
lrwx------. 1 staff test 64 Jan 27 16:34 0 -> /dev/pts/0
lrwx------. 1 staff test 64 Jan 27 16:34 1 -> /dev/pts/0
lrwx------. 1 staff test 64 Jan 27 16:34 2 -> /dev/pts/0
lrwx------. 1 staff test 64 Jan 27 16:34 4 -> /home/test/.sample.txt.swp

среди них есть имена открытых файлов

bcormorant
()
Ответ на: комментарий от anonymous

lsof - внешняя программа
листинг файлов можно получать с помощью встроенных команд TCL

bcormorant
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.