代码改变世界

df命令卡死

2022-04-15 21:12  abce  阅读(664)  评论(0编辑  收藏  举报

机器被同事换过nfs,进去后执行df命令卡住了。

可以使用strace df -h跟踪一下是哪个系统调用有问题。遇到卡住的地方就会停住

# strace df -h
...
stat("/abce/db",

熟悉系统人很容易看到就是之前挂载的nfs路径。

除了这种看,还可以使用nfsstat命令查看一下

# nfsstat -m
/abce/db from 192.168.1.1:/data/db
 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.2,local_lock=none,addr=192.168.1.1

这里192.168.1.1是nfsserver的地址;192.168.1.2是nfsclient的地址。
挂载点为/abce/db和/da/db

# umount -f /abce/db
umount.nfs4: /abce/db: device is busy

# fuser -mv /abce/db

其中:
-v 详细模式
-m 指定一个挂载文件系统上的文件或者被挂载的块设备

找到占用的进程号kill掉即可,当然也可以直接fuser -k。

然后再执行umount即可。
最后就能使用df了。