我想验证应用程序在尝试从错误的文件系统读取时的行为(最值得注意的是:如果未选中,则挂起的NFS挂载可能永远挂起读取)。
是否存在一种简单的方法来本地重现此行为?如果我可以强制装入不存在的东西,或者装入本地ram磁盘并损坏它,或者将其锁定以防止其挂起而不是出错,则该文件是不错的选择。作为小型集成测试的一部分,这应该是我可以重做的事情。
答案 0 :(得分:0)
mkdir /tmp/nfs
/tmp/nfs *(sync,sync,ro,no_subtree_check,fsid=0468884e-fdab-11e9-8ee6-4b007bc13e45)
添加到/etc/exports
sudo exportfs -ra
mkdir /tmp/hang
mount -t nfs -o vers=3 localhost:/tmp/nfs /tmp/hang
ls /tmp/hang
-一切正常。ls /tmp/hang
-它会挂起。ls
命令将释放。关闭NFS服务器的另一种方法是通过iptables
阻止客户端。这样做的好处是,您可以设置多个网络接口,通过不同的接口安装多个客户端,然后通过使用iptables
阻止网络接口来选择性地阻止客户端。