解决Linux删除文件空间仍然不释放问题
作者:Xiao_zuo_ya
本文记录了Linux服务器在移动文件过程中出现磁盘空间不足的问题,找到占用磁盘最多的目录或非必要的日志文件删除后,空间仍然不释放,经查证,是因为文件仍然被线程占用,故提出了通过echo清空文件内容或者使用sudolsof+L1找到并清理占用文件的线程的解决方案
Linux删除文件空间仍然不释放
删除文件大家都会,但是删除文件后空间仍然不释放,我是第一次遇到,记录一下。
tips:
写在前面,我需要在Linux 服务器上从A目录移动文件到B目录,报错信息如下
No space left on device
也就是移动到的目录磁盘空间不足
解决方案
找到占用磁盘最多的目录活非必要的日志文件删除,释放磁盘空间
# 查看磁盘使用情况 df -h # 找到那个磁盘被打满了,具体是那个目录,然后再目录下执行 # 查找深度为1的所有目录大小情况 du -h --max-depth=1 # 删除日志文件 rm -rf *.log
以上是常规操作,但是本以为删除文件后,在移动文件应该可以了,但是还是提示空间不足,有点诡异了
网上查了一下,说是文件仍然被线程占用,所以空间不会被释放
- 不要直接删除文件,可以通过echo “” 把文件内容清空
- 或者使用 sudo lsof +L1 找到删除并占用文件的线程,清理掉这些线程
总结
这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。