博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 文件已经删除,但是空间没有释放的原因
阅读量:5355 次
发布时间:2019-06-15

本文共 661 字,大约阅读时间需要 2 分钟。

  监控系统报告一台服务器的空间满了,登陆后发现/tmp下有大量access_log文件,分析是Apache的日志文件很久没有清理了,确认并执行删除操作。

但是,问题来了,执行 rm /tmp/access_log 操作后,再次查看发现磁盘分区的空间并没有释放,这是怎么回事?

 

  经查阅资料发现: 当文件进程锁定,或者有进程一直在向这个文件写数据,就会出现这种删除文件后空间不释放的情况。

深入理解相关Linux文件的存储机制和存储结构:

    一个文件在文件系统中存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,在将数据删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中。在将数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以出现删除access_log文件后,空间没有释放,就是因为httpd进程还在一直向这个文件写入内容,进程被锁定,则文件对应的指针部分并未从meta-data中清除,而由于指针并未删除,系统内核就认为文件并未被删除。所以出现上述现象。

  解决:    最优解决方案  echo “ ” >/tmp/access_log 在线清空日志文件,直接写入 空内容 然后覆盖整个文件,该方法常用来在线清理Apache、Tomcat、Nginx等web服务产生的日志。

    当然也可以重启进程,重启系统。  

 

转载于:https://www.cnblogs.com/aaronax/p/7272468.html

你可能感兴趣的文章
一个控制台程序,模拟机器人对话
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
对PostgreSQL的 SPI_prepare 的理解。
查看>>
解决响应式布局下兼容性的问题
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>