监控系统报告一台服务器的空间满了,登陆后发现/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服务产生的日志。

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

最新文章

  1. Win7&Ubuntu12.04 双系统引导问题
  2. Zookeeper异常ConnectionLossException解决
  3. spring监听器
  4. C语言复杂声明-void (*signal(int sig, void (*handler)(int)))(int);
  5. eclipse部署web项目至本地的tomcat但在webapps中找不到
  6. Node.js与Sails~Model数据模型
  7. 前端引擎初步设计稿 -通过配置生成动态页面 ,LandaSugar平台 .NET-C#-MVC
  8. NFC会员管理-转载自http://technews.cn/2014/09/13/nfc-sticker/
  9. MySql对空间数据库的支持
  10. 解决ext时间插件在谷歌下变宽的BUG
  11. C/C++运算符优先级
  12. mysql优化:连接数
  13. SQL注入攻击[详解]
  14. C#控件基础
  15. div+css+position实现简单的纵向导航栏
  16. Cannot load php5apache2_4.dll into server
  17. wpf(windos窗体)
  18. [py]Python使用UUID库生成唯一ID(uuid模块)
  19. Docker 命令收集
  20. eclipse 配置jdk和maven

热门文章

  1. 原生 JS 实现扫雷 (分析+代码实现)
  2. 纯js轮播图练习-3,类似于淘宝海报带小圆点轮播图
  3. 在WIN7下安装运行mongodb
  4. 【Spark】算子
  5. python 爬虫(爬取网页的img并下载)
  6. Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序
  7. 反射vs简单工厂模式
  8. c语言杨氏矩阵算法
  9. 小程序开发-11-Promise正确用法与函数签名设计技巧
  10. treetable--.net webform中树形table表管理的应用