所以我在服务器 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--------
形式进入共享,并在更改名称后保持这种状态。
这是完整的 smb.conf
文件:http://gist.github.com/172474运行smbstatus
的结果:http://gist.github.com/172478
更多信息:
如果我从安装了共享的盒子中手动创建文件,我可以毫无问题地创建、编辑、删除。如果我启动 IRB(交互式 ruby) session ,我可以使用 Ruby 创建/删除文件,没有问题。似乎是应用程序本身创建了具有奇怪权限的文件。虽然应用程序和我的 IRB session 以同一用户身份运行,所以他们应该具有相同的权限来执行任何操作。
感谢您的帮助!
最佳答案
您有权访问 samba 服务器的完整配置吗?我知道一个常见的习惯用法是配置 samba 执行除通过服务器删除命令删除文件之外的其他操作,以便在网络上实现“垃圾箱/回收站”风格的功能。重命名原始目录中的文件有点不寻常,但仍然是可能的。
关于linux - Samba、CIFS 和删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314440/