Linux查看磁盘占用情况

男娘i 2022-12-20 06:26 206阅读 0赞

1、查看磁盘状态

  1. [root@delivery-test ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. devtmpfs 3.9G 0 3.9G 0% /dev
  4. tmpfs 3.9G 0 3.9G 0% /dev/shm
  5. tmpfs 3.9G 410M 3.5G 11% /run
  6. tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
  7. /dev/sda1 40G 40G 20K 100% /
  8. tmpfs 799M 0 799M 0% /run/user/0
  9. overlay 40G 40G 20K 100% /var/lib/docker/overlay2/2f948926a76c2201c01918b47d54bb87db7deac28ac2a1586820e2a0163fe471/merged
  10. shm 64M 0 64M 0% /var/lib/docker/containers/fc77375a461d6a68d3d7af41519c194662d405ce131d50793963e734b8131f42/shm

2、查看各个文件磁盘占用情况

命令中的 / 表示跟目录,也可以试 /home 等,可根据情况自行修改。

  1. [root@delivery-test ~]# du -sh /*
  2. 0 /bin
  3. 154M /boot
  4. 0 /dev
  5. 36M /etc
  6. 37G /home
  7. 0 /lib
  8. 4.3M /root
  9. 1.5M /tmp
  10. 1.6G /usr
  11. 530M /var

3、查看inodes容量

当磁盘容量或inode容量任意一个不足时就都会提示 No space left on device

查看后进入占用率高的目录删除无用文件即可。

  1. [root@delivery-test /]# df -ih
  2. Filesystem Inodes IUsed IFree IUse% Mounted on
  3. devtmpfs 996K 384 995K 1% /dev
  4. tmpfs 998K 1 998K 1% /dev/shm
  5. tmpfs 998K 566 998K 1% /run
  6. tmpfs 998K 16 998K 1% /sys/fs/cgroup
  7. /dev/sda1 106K 106K 923 100% /
  8. tmpfs 998K 1 998K 1% /run/user/0
  9. overlay 106K 106K 923 100% /var/lib/docker/overlay2/2f9489a0163fe471/merged
  10. shm 998K 1 998K 1% /var/lib/docker/containers/fc7834b8131f42/shm

4、查看文件数量

inodes 爆满那就查看一下哪些地方文件数量过多。

根据上边的信息 / 目录的 inodes 占用率为 100% 所以查看其下文件,将无用文件删除即可,进行删除即可。

  1. for i in /*; do echo $i; find $i |wc -l; done

5、僵尸进程

若磁盘容量和 inodes 容量都正常但还是没有磁盘空间,则需查看是否存在已被删除的文件,状态为 deleted

  1. lsof | grep deleted

根据进程号,将其 kill 掉即可。若不清楚该进程作用请勿随意 kill

原理:

在linux上被删除的文件仍被其他进程所使用,文件句柄没有完全释放出来,导致空间无法释放出来,在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

发表评论

表情:
评论列表 (有 0 条评论,206人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux查看端口占用情况

    今天要使用python写一个端口探测的小程序,以检测一些特定的服务端口有没有被占用,突然发现自己居然不知道在linux中如何查询端口被占用的情况,天呐,赶快学习一下。?