Linux文件删除后空间没有被释放的原因和解决方案
Linux文件删除后空间没有被释放的原因和解决方案
在特定的场景下, 当你在删除了应用的日志文件后, 实际上是删除了文件的引用, 而并非真正释放了硬盘空间
在Linux系统中, 当一个文件被打开并写入内容时, 即使删除了这个文件, 文件的内容仍然会继续占用磁盘空间, 直到所有对该文件的引用都被释放
要解决这个问题, 我们需要找到正在占用硬盘空间的文件并释放它们
查看被删除但仍在占用硬盘空间的文件
常见的方法是使用lsof命令来查看哪些文件被打开并占用了硬盘空间
1 | # 查看已删除但被占用的文件 |
中止进程占用
如果是进程占用的情况, 有两种解决方案
方案1:重启相关进程
systemctl restart <service>
方案2:发送SIGHUP信号
kill -HUP <PID>
手动关闭文件描述符(不终止进程)
1 | echo > /proc/<PID>/fd/<FD> |
使用清空内容而不是删除
truncate -s 0 filename
其他可能的情况
- 文件系统出现问题
- 被删除的是软/硬链接文件