c++ 当我们在NFS驱动器中创建符号链接时,如何将基于客户端的文件路径转换为基于服务器的路径?

lawou6xi  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(145)

我正在开发NFS服务器模块(ProcedureSYMLINK),在创建符号链接时遇到了路径转换问题。运行NFS服务器服务后,我连接了服务器,并在Linux客户端上装载为驱动器。运行以下命令以使用完整路径在NFS驱动器内创建符号链接,并在服务器端进行调试。但未基于服务器路径提供目标文件路径。
ln -文件系统/管理程序/文件系统/1.bin文件系统/管理程序/文件系统/符号链接/1.lnk文件系统
让我给予一个例子来澄清我的问题。
NFS服务器上的基目录路径为/usr/nfs。
所以我在服务器上执行了以下命令。
./nfs服务器/用户名/nfs
我使用下面的命令在Ubuntu客户端上挂载了NFS。
sudo安装-t nfs -服务器=3,协议=tcp,端口=2049 192.168.1.37:/usr/nfs www.example.com/mnt/nfs
之后,我创建了符号链接。
ln -文件系统/管理程序/文件系统/1.bin文件系统/管理程序/文件系统/符号链接/1.lnk文件系统
文件夹:目标路径
/mnt/nfs/符号链接/1.lnk:符号链接路径
一旦我输入上述命令,并试图调试服务器端.
在ProcedureSYMLINK函数中,我可以看到变量的状态。我可以安全地获取基于服务器的符号链接路径,但目标路径不基于服务器。目标路径仍然是/mnt/nfs/1.bin
实际上,没有办法获得NFS客户端在服务器上的挂载基本路径(/mnt/nfs),对吗?如果我知道基本路径(/mnt/nfs),我可以基于服务器计算目标文件路径,但我不知道客户端的基本路径。
目标文件路径可能是/usr/nfs/1. bin。但是无法像这样计算路径。有人知道吗?
我使用的是NFS v3

krcsximq

krcsximq1#

希望以下两点能帮助回答您的问题:
1.在NFS中,符号链接总是由客户端解析,从NFS服务器的Angular 来看,符号链接只是一种特殊类型的文件,但其内容(如中所示,符号链接指向的位置)只是一个不透明的blob。
1.客户机上的挂载点(在您的示例中为/mnt/nfs)纯粹是客户机端的事情,NFS协议中没有让服务器知道它的规定。

相关问题