Итак, у меня есть общий ресурс Samba, расположенный на сервере A. Я подключил этот общий ресурс к двум другим серверам, B и C. Идея состоит в том, что B и C должны записывать временные файлы в одно место, чтобы несколько заданий фоновой обработки ( также работающие на B и C) имеют доступ к одному и тому же пулу файлов.
По завершении фоновых процессов они удаляют файл, над которым работали. Когда я делаю список каталогов общего ресурса после удаления файла, имена исходных файлов теперь соответствуют строкам cifs79
, cifs78
и т.д. Они занимают столько же места, что и исходный файл, поэтому я предполагаю, что они являются оригиналы, только что переименованные.
Проблема в том, что эти файлы не исчезнут, если я не перезапущу самбу (чего я никогда не планирую делать). Мне не хватает простого параметра конфигурации, который немедленно удаляет файлы?
Я создал свои акции с помощью этой команды:
mount -t cifs //10.251.251.251/uploads ./uploads -o username=samba_user,noexec
Файлы попадают в общий ресурс как -rw-------
и остаются такими после смены имен.
Теперь, если я вручную создаю файл из ящика, к которому подключен общий ресурс, я могу без проблем создавать, редактировать и удалять. Если я начну сеанс IRB (интерактивный рубиновый), я могу использовать Ruby для создания / удаления файлов без проблем. Похоже, что это само приложение (Rails 2.3.3), которое создает файл со странными разрешениями. Но приложение и мой сеанс IRB работают как один и тот же пользователь, поэтому у них должны быть одинаковые разрешения на любые действия, не так ли?
Когда я создаю файл в командной строке или из IRB, разрешения устанавливаются -rw-rw-rw-
Вот полный smb.conf
файл и вывод smbstatus
внизу: http://gist.github.com/172474
Спасибо за любую помощь!
Вероятно, есть проблема с совместным доступом / блокировкой ваших файлов. Фоновый процесс обрабатывает файлы, пока они все еще записываются тем, кто их создает.
удалить:
locking = no
из вашего файла smb.conf. Это должно решить проблему. Этот параметр следует использовать только для общих ресурсов только для чтения. Как cd. Убедитесь, что доступ к этим файлам осуществляется через общий ресурс samba. Если вы обращаетесь к ним напрямую из ОС или из общего ресурса nfs. Тогда прочтите это внимательно.
Я также столкнулся с той же проблемой и некоторое время искал. После перезагрузки компьютера файлы исчезнут.