Samba、CIFS 和删除文件

Samba、CIFS 和删除文件

因此,我在服务器 A 上有一个 Samba 共享。我已将该共享安装到另外两台服务器 B 和 C。想法是,B 和 C 需要将临时文件写入单个位置,以便多个后台处理作业(也在 B 和 C 上运行)可以访问同一个文件池。

当后台进程完成后,它们会删除正在处理的文件。当我在文件被删除后列出共享的目录时,原始文件的名称现在类似于 等。cifs79它们cifs78占用的空间与原始文件相同,因此我假设它们原版,只是改了名字。

问题是这些文件不会消失,除非我重新启动 samba(我根本不打算这样做)。我是否缺少一个可以立即删除文件的简单配置参数?

我使用以下命令创建了我的共享:

mount -t cifs //10.251.251.251/uploads ./uploads -o username=samba_user,noexec

文件以原样进入共享,-rw-------并且在更改名称后仍保持原样。

现在,如果我从安装了共享的框中手动创建文件,我可以毫无问题地创建、编辑、删除。如果我启动 IRB(交互式 Ruby)会话,我可以使用 Ruby 毫无问题地创建/删除文件。似乎是应用程序本身(Rails 2.3.3)创建了具有奇怪权限的文件。但是,应用程序和我的 IRB 会话以同一个用户身份运行,因此它们应该具有相同的权限来执行任何操作,不是吗?

当我在命令行或 IRB 中创建文件时,权限被设置-rw-rw-rw-

这是完整文件和底部smb.conf的输出:smbstatushttp://gist.github.com/172474

谢谢你的帮助!

答案1

您的文件可能存在共享/锁定问题。后台进程正在临时处理文件,而创建者仍在写入文件。

去除那个:

locking = no

从您的 smb.conf 文件中。它应该可以解决问题。此参数应仅在只读共享上使用。像 cd 一样。确保对这些文件的所有访问都是通过 samba 共享进行的。如果您直接从操作系统或 nfs 共享访问它们。然后仔细阅读

答案2

我也遇到了同样的问题,搜索了一段时间,重启电脑后文件就没了。

相关内容