很多linux用户在使用服务器或者个人pc时,经常会遇到明明没存多少大文件,磁盘空间却提示不足的情况,追根溯源大多是各类缓存没有及时清理占用了空间,本文就教你快速定位具体被缓存占用的磁盘空间。
先确认整体磁盘占用情况
当发现磁盘空间异常时,第一步先通过`df -h`命令查看整体挂载分区的使用情况,该命令会以gb、mb为单位输出每个分区的总容量、已用空间、可用空间和使用率,能快速帮你定位是哪个分区出现了空间不足的问题。如果出现df显示分区使用率超过90%,但你汇总所有可见文件大小后远小于已用容量,基本可以确定是未清理的缓存或者隐藏缓存占用了空间。

统计磁盘上缓存文件的具体占用
linux系统和各类应用都会默认将缓存存储在几个固定目录,最常见的包括系统缓存目录`/var/cache`、临时缓存目录`/tmp`、当前用户的个人缓存目录`~/.cache`。想要查看这些缓存具体占用了多少空间,可以使用`du`命令汇总统计:输入`sudo du -sh /var/cache/*`,就能输出`/var/cache`下每个子缓存目录的总占用大小,很多时候系统包管理器的旧软件包缓存就能占用数gb的磁盘空间,很容易被用户忽略。如果想要全局查找大缓存文件,还可以配合find命令筛选:`sudo find / -type f -size +100m -name "*cache*"`,就能直接列出所有大于100m的缓存文件,快速定位占用大户。

查看已删除缓存未释放的空间占用
还有一种常见的隐藏缓存占用情况:应用运行时生成的临时缓存文件被删除,但对应进程没有关闭,文件句柄未释放,导致磁盘空间不会被系统回收,这种情况很容易让用户摸不着头脑。排查这类问题可以通过`lsof`命令:输入`sudo lsof | grep deleted`,就能列出所有已删除但仍被进程占用的文件,其中大部分都是未释放的临时缓存,只要重启对应进程就能自动释放被占用的磁盘空间,不需要重启整个系统。
日常使用中定期清理无用缓存,就能有效避免缓存占用过多磁盘空间的问题,以上方法可以快速定位绝大多数缓存占用问题,解决磁盘空间莫名不足的烦恼。(全文约645字)



































