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

背景

服务器的docker containers文件夹每天都增加1GB左右,后来发现是错误的打开了查询的query log,导致log增长至57GB. 尝试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查看磁盘情况

你可能感兴趣的:(删除大文件之后磁盘空间没有释放)