奇怪的 samba 和 gvfs 行为 - 〜一半的目录/文件随机出现“丢失”

奇怪的 samba 和 gvfs 行为 - 〜一半的目录/文件随机出现“丢失”

情况:服务器上装有 Gentoo Linux 和 Samba。大约有 15 台 Windows PC、一台 MacBook Pro 和一台安装 Ubuntu 的三星笔记本电脑。没有域,只有一个工作组,服务器仅用于 Samba 共享。在 Ubuntu 上,我使用 gvfs 挂载 samba 共享。

问题是:有一天,大约一半的目录丢失了,但仅限于在这台 Ubuntu 笔记本电脑上查看时。如果我通过 ssh 连接到服务器,我可以看到丢失的文件/目录,并且还可以看到 win 或 mac 计算机上丢失的内容。

临时修复:当我重命名一些丢失的目录时,即使它是一个符号,丢失的目录也会重新出现......即使没有重新加载/刷新 gvfs 安装的共享。如果我立即重命名回以前的目录/文件名,则所有以前丢失的目录/文件都会立即再次丢失。

因此,当这个问题在大约一个月后再次出现时,我可以使用一些建议来开始检查。

答案1

我可能遇到过类似的问题,但只是缺少单个文件。我怀疑 linux samba 挂载助手有问题。

您能在您的客户端上运行以下测试吗?

cd [缺少子目录的目录]

ls-al | grep [缺少名称] -> 未找到任何内容(readdir 已损坏)
ls -al [missing name] -> 列出元素(统计工作)--当 [missing name] 是目录时使用 -d

要查明内核是否对您隐藏了这些文件:

umount smb 共享
启动“tcpdump -p -i [您的网卡] -s0 -w net.dump 主机 [您的 samba 主机]”
挂载共享
运行“ls -al | grep [missing name]”测试
停止 tcpdump
验证文件名是否在 tcpdump 中,但未显示在目录列表中。所以:
字符串 --encoding=b net.dump | grep [缺少名称]
字符串 --encoding=l net.dump | grep [缺少名称]

如果 name 至少包含一次,则表明 samba 服务器正在发送整个列表,但 linux 会丢弃一些条目。

相关内容