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).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。