1 (31.01.2013 17:56:03 отредактировано Cruiser78)

Привет всем!

Было:
1. RFR-14
2. Самба из штатных репов
3. корзина на самбовом ресурсе с типовыми настройками:

  
  vfs objects = recycle
  recycle:repository = /data/.deleted/FirmDocs/%U
  recycle:keeptree = yes
  recycle:versions = yes
  recycle:exclude = *.tmp | *.TMP | ~$* | ~WRL* | *~lock.* | *.dbf | *.cdx | *.DBF | *.CDX | *.ert | *.efd | *.ERT | *.EFD
  recycle:touch = yes
  recycle:touch_mtime = yes


Работало.
Стало
1. CentOS 6.3.
2. Самба:

 Консоль:
#yum info
Name        : samba3
Arch        : x86_64
Version     : 3.6.10
Release     : 44.el6
Size        : 51 M
Repo        : installed
From repo   : sernet-samba
Summary     : SerNet Samba SMB/CIFS file, print and authentication server
URL         : http://www.samba.org
License     : GPL v3 or later
Description : Samba is a suite of programs which work together to allow clients to
            : access Unix filespace and printers via the SMB/CIFS protocol.

3. Корзина с теми же настройками.
Проблема:
Когда юзер удаляет файл на шаре с корзиной, то в самой корзине создается правильный путь (структура каталогов) с нужными правами (юзер - хозяин всего пути), но сам файл в корзину не перемещается. То есть корзина стала работать на 50%. Пути, структура есть, но самих удаленных файлов в ней нет.
В логах никаких записей на этот предмет я найти не сумел.
Коллеги, кто нибудь сталкивался с подобной засадой? Наведите на путь решения...
===========
Хотя, нет, соврал, что ничего в логах криминального не нашел.
Нашел следующую запись:
recycle: Move error 18 (Неверная ссылка между устройствами), purging file public/1/IE/aaa.txt (/data/.deleted/FirmDocs/user/public/1/IE/aaa.txt)
И как с ней быть?

2

попробуй вместо "vfs objects = recycle" прописать "vfs objects = recycle crossrename"
Как я понял проблема в том что оно пытается переименовать файл, а так как переименовать на другое устройство не получается (если перенести корзину на тоже устройство то все будет работать) то и вылазит такая ошибка.
Причем эта проблема наблюдается на samba 3.6, на 3.5 все работает и без crossrename.
Вот тут на оф. сайте самбы обсуждают этот баг bugzilla.samba.org/show_bug.cgi?id=8637

3

1gor88 пишет:

попробуй вместо "vfs objects = recycle" прописать "vfs objects = recycle crossrename"
Как я понял проблема в том что оно пытается переименовать файл, а так как переименовать на другое устройство не получается (если перенести корзину на тоже устройство то все будет работать) то и вылазит такая ошибка.
Причем эта проблема наблюдается на samba 3.6, на 3.5 все работает и без crossrename.
Вот тут на оф. сайте самбы обсуждают этот баг bugzilla.samba.org/show_bug.cgi?id=8637

Спасибо, попробуем. Хотя, непонятно как-то. Если для переименования файла используется mv, то это команда весьма мудрая и на другое устройство она файл копирует. А здесь, похоже, решили через хардлинки файлы в корзине образовывать. А хардлинк на два диска невозможен...

4 (11.02.2013 23:04:57 отредактировано 1gor88)

Обнаружил еще один интересный момент, если делать корзину на другой раздел, тобишь ситуация описанная выше то попадают в корзину только файлы не более 20 мб. Спасает ситуацию еще одна строчка
crossrename:sizelimit = 500 . Где 500 это 500мб