Linux查看磁盘占用情况

1、查看磁盘状态

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

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

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

[root@delivery-test ~]# du -sh /*
0	/bin
154M	/boot
0	/dev
36M	/etc
37G	/home
0	/lib
4.3M	/root
1.5M	/tmp
1.6G	/usr
530M	/var

3、查看inodes容量

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

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

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

4、查看文件数量

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

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

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

5、僵尸进程

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

lsof | grep deleted

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

原理:

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

    原文作者:Been~You
    原文地址: https://blog.csdn.net/k_young1997/article/details/109617107
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞