在具有自动挂载主目录的环境中,文件服务器导出的同一文件系统可能会在客户端上挂载多次,我希望能够权威地识别两个挂载点是否实际上是同一个文件系统。也就是说,如果远程服务器导出:
/home
本地客户端有:
# mount
fileserver:/home/l/lars on /home/lars type nfs (rw...)
fileserver:/home/b/bob on /home/bob type nfs (rw...)
我正在寻找一种方法来识别/home/lars
和/home/bob
实际上是同一个文件系统。理论上,这fsid
就是状态文件系统结构是,但在所有情况下,对于本地和远程文件系统,我发现这个结构成员的值是 0。
这是某种客户端问题吗?还是大多数现代 NFS 服务器根本就拒绝提供有用的信息fsid
?
所有这些的最终目标是可靠地解释quota
NFS 文件系统命令的输出。例如,给出上面的例子,quota
以我自己的身份运行可能会返回类似以下内容:
Disk quotas for user lars (uid 6580):
Filesystem blocks quota limit grace files quota limit grace
otherserver:/vol/home0/a/alice
12 52428800 52428800 4 4294967295 4294967295
fileserver:/home/l/lars
9353032 9728000 10240000 124018 0 0
...这里的问题是,otherserver 上存在我的配额,该配额在命令结果中可见quota
,尽管我的主目录实际上位于不同的设备上。我的计划是查找输出fsid
中列出的每个挂载点
quota
,并检查它是否fsid
与我的主目录关联的相匹配。
看起来这行不通,所以...有什么建议吗?
答案1
您可以使用该mountpoint
命令。该-d
开关将挂载点的主/次设备号打印到标准输出。
mountpoint -d /home/lars
在您的情况下,将的输出与 进行比较mountpoint -d /home/bob
。
[root@Fruity ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.9G 2.5G 7.0G 26% /
/dev/sda1 97M 43M 50M 47% /boot
/dev/sda7 2.0G 68M 1.9G 4% /tmp
/dev/sda3 9.9G 2.8G 6.6G 30% /usr
/dev/sda6 6.0G 1.1G 4.6G 19% /var
/dev/sdb1 400G 263G 138G 66% /data
/dev/sdc1 150G 122G 29G 82% /images
nfs001:/data/chain 36G 1.2G 35G 4% /data/chain
nfs001:/data/src 36G 1.2G 35G 4% /data/src
[root@Fruity ~]# mountpoint -d /data/chain/
0:19
[root@Fruity ~]# mountpoint -d /data/src/
0:19
[root@Fruity ~]# mountpoint -d /data/
8:17