powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / vsftpd 2.0.7//SLES11 SP2
10 сообщений из 10, страница 1 из 1
vsftpd 2.0.7//SLES11 SP2
    #38001359
MacDuck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть стороннее приложение, которое раз в 5 минут проверяет входящий каталог пользователя, в который в произвольное время вливаются по ftp некие файлы.


Если находит файлы и проверяет fuser-ом наличие pid, открывшего файл. Если проверка проходит (fuser ничего не возвращает), то файлы забираются к себе, упаковываются и т.д.

Сейчас забираются и недовлитые файлы.

В конфиге vsftpd есть параметр lock_upload_files, но он НЕ РАБОТАЕТ и ничего не лочит. Файл тупо создается как он и должен быть по завершении влива и просто растет в размере. Начало вливаемого файла можно запросто, скажем, зазипить или замувить. При этом вливающий ftp-клиент будет спокойно продолжать вливать "в никуда".
Проблема усугубляется тем, что влив происходит по софтлинкам, а fuser в таком случае не выдает ничего ни по "линкованному" пути, ни по "честному". Т.е. скрипты приложения не понимают, что файл еще открыт. lsof от рута показывает открытый файл, но от пользователя приложения - НЕТ. Как распознать, что файл недовлит еще?

Принудительная установка иной версии vsftpd (2.2, 3.0), в которой, якобы, этот баг пофикшен разрушит целостность дистрибутива, а сервер продуктивный. Т.е. отклоняться от дистрибутивной поставки библиотек и бить dependences нельзя. А на фирменных репозиториях vsftp есть только единственной версии - 2.0.7.

Почему софтлинки? Просто пути приложения и команды-пути на стороне ftp-клиентов захардкожены и не совпадают, менять их нельзя. А, скажем, pureftp софтлинков не понимает. Иных ftp_серверов в дистрибутиве нет.

Что делать?!
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38001453
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если клиент умеет докачку, и при обрывах доливает? Переименовывать клиентом после заливки?
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38001688
MacDuck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Дениса если клиент умеет докачку, и при обрывах доливает? Переименовывать клиентом после заливки?
На клиентской стороне ничего менять нельзя. Они делают cd в известную папку и вливают.
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38003026
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MacDuck, Вы не можете на стороне сервера узнать целиком залился файл или нет, потому что сервер не знает его размера, это знает только клиент. Но так как клиента изменить Вы не можете то Ваша задача не решаема.
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38003128
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно закостылить датой модификации файла, если файл не изменен >20минут назад, считаем его залитым
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38003346
MacDuck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЁшMacDuck, Вы не можете на стороне сервера узнать целиком залился файл или нет

Почему, могу. По открытому дескриптору.

На самом деле, сконструлячил на lsof от владельца принимающего софта. Криво, но работает. Временный вариант.
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38003349
MacDuck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денисможно закостылить датой модификации файла, если файл не изменен >20минут назад, считаем его залитым

В скриптах приложения файлы выбираются в цикле for .. in $DIR.

А как элегантно сформулировать проверку "файл не изменен >20минут назад" в терминах sh?
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38003496
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
find -mmin +20
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38003633
MacDuck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудровfind -mmin +20

Да, find. Спасибо.

Но все это затычка, увы.
...
Рейтинг: 0 / 0
vsftpd 2.0.7//SLES11 SP2
    #38028140
MacDuck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал совершенно тупо: есть открытые ftp-соединения - "постой, паровоз". Нету - обрабатываем.

ЗЫ: SLES - говно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / vsftpd 2.0.7//SLES11 SP2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]