You need to enable JavaScript to run this app.
导航

如何解决Linux实例中df -H命令卡住问题

最近更新时间2023.09.12 16:49:24

首次发布时间2023.09.12 16:49:24

问题描述

在Linux实例中执行df -H命令查看文件系统磁盘使用情况时,命令一直处于执行中,无回显信息。

问题原因

可能是由于实例中挂载的NFS(Network File System,网络文件系统)共享磁盘失效,导致命令执行hang住。

解决方案

  1. 执行如下命令,跟踪df -H命令执行情况。

    strace df -H
    

    本例中命令执行时卡在了/data/nfs处。

    stat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
    stat("/sys/kernel/security", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
    stat("/dev/shm", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=40, ...}) = 0
    stat("/data/nfs",
    
  2. 执行如下命令,查看/data/nfs目录挂载信息。

    mount -l | grep /data/nfs
    

    本例/data/nfs为NFS目录,且已失效。

    192.168.xx.xx:/home/data/nfs on /data/nfs type nfs4 (rw,relatime,vers=4.0,
    rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,
    clientaddr=192.168.xx.xx,local_lock=none,addr=192.168.xx.xx)
    
  3. 执行如下命令,查看是否有进程在使用该目录。

    fuser -cu /data/nfs
    

    本例中chrony进程正在使用该目录。

    /data/nfs:  579(chrony) 
    
  4. (可选) 若存在进程正在使用hang住的目录,可执行如下命令,停止该目录中运行的所有进程。

    停止进程前,请确认不会影响数据。

    fuser -ck /data/nfs
    
  5. 执行如下命令,卸载失效目录。

    umount -v /data/nfs
    
  6. 再次执行df -H命令,验证命令可以正常执行。