Linux 下删除了文件,空间为何不释放?

 时间:2026-02-12 05:44:15

1、我们的一台应用服务器,操作系统是 Red Hat Linux,监控报警,/opt/applog文件系统使用率超阈值,整体容量为50G,但发现实际文件容量20G,剩下的30G空间是什么?

2、我们知道,Linux 环境下,任何事物,都是以文件的形式存在,系统在后台,为每个应用程序,分配了一个文件描述符,他为应用程序和操作系统之间的交互操作提供了通用的接口,既然是文件,就会占用空间,此时可以使用 lsof 指令,他可以列出,当前系统正在打开的文件。

>lsofCOMMAND      PID      USER   FD      TYPE    DEVICE  SIZE/OFF      NODE NAME...filebeat  111442   app  1r      REG     253,3 209715229   1040407 /opt/applog/E.20171016.info.012.logfilebeat  111442   app  2r      REG     253,3 209715254    385080 /opt/applog/E.20171015.info.001.log (deleted)...

3、表头各字段,含义如下:

COMMAND:进程的名称PID:进程标识符USER:进程所有者FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等TYPE:文件类型,如DIR、REG等DEVICE:指定磁盘的名称SIZE:文件的大小NODE:索引节点(文件在磁盘上的标识)NAME:打开文件的确切名称

4、可以看出,有一些行中,NAME标识了(deleted)

/opt/applog/E.20171015.info.001.log (deleted)

他的含义,就是这文件已被删除,但打开文件的句柄,并未关闭,再看 COMMAND 的名称是 filebeat,USER 进程所有者是 app,这是我们的日志采集进程,app 用户开启了 filebeat 进程。

5、插播一下日志采集平台

传统的开源日志平台,即 ELK,由 ElasticSearch、Logstash 和 Kiabana 三个开源工具组成,其中:

Elasticsearch 是个开源分布式搜索引擎,分布式,更多内容请参考《Liпux就该这么学》!零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。

Logstash 是一个开源的采集工具,他可以对日志进行收集、过滤,并将其存储供以后使用。

Kibana 是一个开源的图形 Web 工具,可以为 Logstash 和 ElasticSearch 提供日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。

常见的部署图,如下所示

Linux 下删除了文件,空间为何不释放?

  • 如何解决wireshark无法发现网卡软件报错的情况
  • 怎么查看电脑的.NET Framework版本
  • SQLServer设置客户端使用IP地址登录方法
  • IIS怎么备份和恢复
  • 怎么查看域控制器中的域信任配置?
  • 热门搜索
    打呼噜是什么原因 如何查询本机ip地址 cif保险费怎么算 网上怎么做生意 word中如何自动生成目录 如何看掌纹 range rover是什么车 狡兔三窟是什么意思 如何去胎毒 哀莫大于心死是什么意思