linux – 如何在客户端断开连接后阻止samba持有文件锁?

linux – 如何在客户端断开连接后阻止samba持有文件锁?,第1张

概述在这里,我有一个Samba服务器(Debian 5.0),它被配置为托管 Windows XP配置文件. 客户端连接到此服务器并直接在samba共享上处理其配置文件(该配置文件不会在本地复制). 时不时地,客户端可能无法正常关闭,因此Windows不会释放文件锁.在查看samba锁定表时,我们可以看到许多文件仍然被锁定,即使客户端已不再连接.在我们的例子中,这似乎发生在Mozilla Thunde 在这里,我有一个Samba服务器(Debian 5.0),它被配置为托管 Windows XP配置文件.

客户端连接到此服务器并直接在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持有文件锁?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1043174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存