删除大文件之后磁盘空间没有释放

背景

服务器的docker containers文件夹每天都增加1GB左右,后来发现是错误的打开了查询的query log,导致log增长至57GB(通过find / -type f -size +1G -exec ls -lh {} ;定位). 尝试rm删除该log文件,然后用du -hs查看docker目录占用磁盘大小已经从58GB降至1GB, 但是当用df查看磁盘空间时发现磁盘占用并没有下降,后来经过调查发现该文件因为被container的进程占用并没有真正删除掉。

解决方法

  1. 找出占用该文件的进程ID
lsof | grep deleted
dockerd   11916           root   14r      REG             253,16         0    6291512 /data/docker/containers/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204-json.log (deleted)
  1. 切换至进程目录
cd /proc/${进程ID}/fd
  1. 找到删除文件的File Descriptor
ls -l |grep deleted
lr-x------ 1 root root 64 May  7 07:56 14 -> /data/docker/containers/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204-json.log (deleted)
  1. 14为File Descriptor
> 14
  1. 运行df查看磁盘情况
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容