-
查看当前磁盘空间占用情况
df -hl
-
查看到底是哪些地方这么吃磁盘内存
du -h -d 2|grep [GT] |sort -nr 或者
du -h --max-depth=2|grep [GT] |sort -nr
搜出以G或者T为单位的占用磁盘空间的大目录,并排序
或者FIND指令来检索
find要比du要更快速、灵活
find / -type f -size +1G -exec du -h {} ;
然后找到相对应的大文件,把它干掉
rm -rf 文件名
但此时再次通过df -hl 指令查看磁盘空间发现并未多出已删除的文件对应的空间
还是和之前一样,并没有多出的空间 -
lsof +L1 通过此指令查看被删除后但未被释放的文件
可以发现之前删除的一个占用17G空间的日志文件,仍然占用着空间为被释放,也不能说这个文件太厚皮脸,这是因为linux文件系统的一种自我保护机制,类似windows系统的回收站一样,但两者本质是并不一样,所以我们在把此日志文件对应的服务重启即可释放此文件的空间,这个文件是由我的一个springBoot项目产生的,所以我重启这个项目以后即可释放此日志占用的17G空间
项目重启了以后可见获取了相应的空间释放
到此问题得解
补充:
Linux文件系统存在一种安全策略,它默认会为root用户保留5%的磁盘空间,留作紧急情况使用。这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash
我们可以通过tune2fs修改预留空间的比例
tune2fs -m 1 /dev/vda1
不过不到山穷水尽不建议执行此条指令***