客户端连接到此服务器并直接在samba共享上处理其配置文件(该配置文件不会在本地复制).
时不时地,客户端可能无法正常关闭,因此windows不会释放文件锁.在查看samba锁定表时,我们可以看到许多文件仍然被锁定,即使客户端已不再连接.在我们的例子中,这似乎发生在Mozilla Thunderbird和firefox创建的锁定文件中.以下是samba锁定表的示例:
# smbstatus -L | grep DENY_ALL | head -n5PID UID DenyMode Access R/W Oplock SharePath name Time--------------------------------------------------------------------------------------------------15494 10345 DENY_ALL 0x3019f RDWR EXCLUSIVE+BATCH /home/CORP/user1 app.profile/user1.thunderbird/parent.lock Mon Nov 22 07:12:45 201018040 10454 DENY_ALL 0x3019f RDWR EXCLUSIVE+BATCH /home/CORP/user2 app.profile/user2.thunderbird/parent.lock Mon Nov 22 11:20:45 201026466 10056 DENY_ALL 0x3019f RDWR EXCLUSIVE+BATCH /home/CORP/user3 app.profile/user3.firefox/parent.lock Mon Nov 22 08:48:23 2010
我们可以看到文件是由windows打开的,并强加了DENY_ALL锁.
现在,当客户端重新连接到此共享并尝试打开这些文件时,samba表示它们已被锁定并拒绝访问.
有没有办法解决这种情况或者我错过了什么?
编辑:我们希望避免在samba服务器上禁用文件锁,因为有充分的理由启用它们.
解决方法 以下步骤帮助我在很多场合解决了这个问题:>登录samba服务器.>运行“smbstatus”.>找到锁定文件的进程的pID在输出的第三部分.>验证它是否与预期的用户和主机名匹配在smbstatus输出的第一和第二部分.>运行“ps -ef”,看看带有该pID的smbd有多长一直在跑.>如果它在计算机上次运行之前一直在运行重启,这是一个遗留下来的smbd.杀死只有一个smbd.(并确保你得到正确的 – 它应该是一个父母的pID不等于1.)
总结以上是内存溢出为你收集整理的linux – 如何在客户端断开连接后阻止samba持有文件锁?全部内容,希望文章能够帮你解决linux – 如何在客户端断开连接后阻止samba持有文件锁?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)