doina

一个小菜鸟运维工程师.

linux 删除文件后不释放空间

服务器空间告警不足, 定位到日志位置, 对日志进行了rm -f log.name操作,发现删除后空间不释放

《linux 删除文件后不释放空间》

然后使用lsof查看文件, 发件句柄没有释放掉, 这种情况有两种处理办法,

  1. 重新启动进程, 或者重启服务器.
  2. 找到对应的文件句柄数,这样不需要重启应用

《linux 删除文件后不释放空间》

通过上面的截图可以定位到进程是supervisor, 进程号是1448, 所以找到对应的进程目录

$ cd /proc/1448/fd
$ ll 
lr-x------ 1 root root 64 Jun 21 21:12 0 -> /dev/null
l-wx------ 1 root root 64 Jun 21 21:12 1 -> /dev/null
l-wx------ 1 root root 64 Jun 21 21:12 10 -> pipe:[18717]
lr-x------ 1 root root 64 Jun 21 21:12 11 -> pipe:[59624434]
lr-x------ 1 root root 64 Jun 21 21:12 12 -> pipe:[18718]
l-wx------ 1 root root 64 Jun 21 21:12 13 -> pipe:[18719]
lr-x------ 1 root root 64 Jun 21 21:12 15 -> pipe:[18720]
l-wx------ 1 root root 64 Jun 21 21:12 16 -> pipe:[18721]
l-wx------ 1 root root 64 Jun 21 21:12 17 -> /home/logs/openapiai.2020-05-27.001.log (deleted)
lr-x------ 1 root root 64 Jun 21 21:12 18 -> pipe:[18722]
l-wx------ 1 root root 64 Jun 21 21:12 19 -> pipe:[18723]
l-wx------ 1 root root 64 Jun 21 21:12 2 -> /dev/null
l-wx------ 1 root root 64 Jun 21 21:12 20 -> /var/log/supervisor/salt_access.log
lr-x------ 1 root root 64 Jun 21 21:12 21 -> pipe:[18724]
l-wx------ 1 root root 64 Jun 21 21:12 23 -> /var/log/supervisor/confd.log
l-wx------ 1 root root 64 Jun 21 21:12 3 -> /var/log/supervisor/supervisord.log
lrwx------ 1 root root 64 Jun 21 21:12 4 -> socket:[21049]
l-wx------ 1 root root 64 Jun 21 21:12 5 -> /var/log/supervisor/metricbeat_access.log
l-wx------ 1 root root 64 Jun 21 21:12 6 -> /var/log/supervisor/agent_access.log
lr-x------ 1 root root 64 Jun 21 21:12 7 -> /dev/urandom
l-wx------ 1 root root 64 Jun 21 21:12 9 -> pipe:[59624433]

然后通过上面的日志可以定位到是 17 的这个链接文件指向了/home/logs/openapiai.2020-05-27.001.log (deleted) , 所以处理这个文件就可以了, 这里直接 echo > 17, 然后在进行空间查看, 空间已释放.

《linux 删除文件后不释放空间》

点赞

发表评论

邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据