Ubuntu ProFTP удаляет частично загруженный файл после сбоя соединения на стороне клиента

Я устанавливаю ProFTP из Кв. на новой ubuntu 14.04 (OpenSSH+LAMP) с модификацией-sql для пользовательского входа в систему. Я установил папку ftp для каждого пользователя от конфигурации в sql таблице. И позвольте пользователю возобновлять файл загрузки набором AllowStoreRestart on в конфигурации.

Все хорошо работает. Пользователь может загрузить/загрузить, управляют файлом в их папке. Если пользовательская очередь загрузки остановки в filezilla они могут возобновить его позже.

Однако, когда интернет-соединение, не стабильное на стороне клиента. После интернет-соединения вниз, когда-то файл, который все еще загрузка, исчезает из папки на сервере.

После расследования я нашел, что весь файл, которые исчезают, получил ошибку как это

[13/Jul/2014:14:15:37 +0000] 110.xx.xx.xx username STOR  426  2196991 788.205 Timeout exceeded: TimeoutStalled during data transfer  failed Data connection closed

или

[13/Jul/2014:14:11:48 +0000] 110.xx.xx.xx username STOR  426  675945 211.340 Read EOF from client  failed Data connection closed

Затем этот файл исчезнет из папки, и filezilla попытается загрузить от первого байта снова. Я перепроверяю xferlog и не сделал нашел, что любой удаляет запрос от клиента просто неполное сообщение загрузки.

  • Кто-либо знает, почему частично загруженный файл исчезает из папки загрузки?
  • Как предотвратить это поведение proftpd?

Серверная версия

# proftpd -v
ProFTPD Version 1.3.5rc3
# uname -a
Linux testftp 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# mysql -V
mysql  Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (x86_64) using readline 6.3

proftpd.conf

Include /etc/proftpd/modules.conf
UseIPv6                         on
IdentLookups                    off
ServerName                      "Debian"
ServerType                      standalone
DeferWelcome                    off
MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on
TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200
DisplayLogin                    welcome.msg
DisplayChdir                    .message true
ListOptions                     "-l"
DenyFilter                      \*.*/
RootLogin                       off
DefaultRoot                     ~
RequireValidShell               off
Port                            21
<IfModule mod_dynmasq.c>
</IfModule>
MaxInstances                    30
User                            proftpd
Group                           nogroup
Umask                           022  022
AllowOverwrite                  on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log
<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
Include /etc/proftpd/sql.conf
AllowStoreRestart on
Include /etc/proftpd/conf.d/

P.S.

  • Обычно, Файлы, которые передают этому серверу, составляют больше чем 5 ГБ.
1
задан 23 February 2016 в 20:27
1 ответ

После долгих исследований и испытаний. Виновник - AppArmor. Обычно он работает просто отлично. Происходит только некоторое условие, что AppArmor иногда удаляет файл с разорванного соединения. Я не смог найти конкретный шаблон или конфигурацию, потому что при одном и том же действии иногда файл удаляется, а иногда нет. Однако, после отключения AppArmor я больше не нахожу эту проблему.

Для отключения apparmor запустите команды ниже:

service apparmor stop 
update-rc.d -f apparmor remove 
apt-get remove apparmor apparmor-utils
2
ответ дан 3 December 2019 в 21:15

Теги

Похожие вопросы