ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux清除磁盘空间不足,删除大文件后,还是显示占用空间,咋办?我很急!!!来看这里

2021-09-29 11:33:10  阅读:459  来源: 互联网

标签:文件 删除 占用 磁盘空间 meta linux 日志 咋办 指针


博主身为测试,但是目前兼职半个运维,最近查看阿里云的服务器在群内报警已有多次,提醒磁盘空间已到达设置阈值

 

一、处理办法

登录服务器之后,通过命令

1. df -h 查看当前服务器磁盘占用情况,已经到达了设定范围

2.cd 到对应的目录后,开始查找占用比较大的文件

3.命令---du -sh * 查看当前目录下所有文件占用大小,然后通过这种方式一个个的去检查文件夹大小,最后找到日志文件比较大,日志嘛比较早先的可以先给干掉

4.删除日志文件,rm -f xxx

 

二、发现问题并解决问题

 

1.但是这么做之后,继续df  -h发现磁盘空间还是94%,去看下那个删除的文件还在不在,结果发现文件确实是删除了,但是为啥磁盘占用还是这么多,后来还是查询了相关资料

2.问题原因---看下面解释,简单来讲就是删除的文件还是占用进程,不会主动释放

一般说来不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,或者有进程一直在向这个文件写数据等等,要理解这个问题,就需要知道Linux下文件的存储机制和存储结构。

一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,数据被删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中,数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以出现删除access_log文件后,空间还没释放,就是因为httpd进程还在一直向这个文件写入内容,导致虽然删除了access_log文件,但文件对应的指针部分由于进程锁定,并未从meta-data中清除,而由于指针并未被删除,那么系统内核就认为文件并未被删除,因此通过df命令查询空间并未释放也就不足为奇了

 3.解决问题

  最简单的方法是关闭或重启httpd进程,当然也可以重启操作系统,不过这些并不是最好的方法。对待这种进程不停对文件写日志的操作,要释放文件占用的磁盘空间,最好的方法是在线清空这个文件,具体可以通过如下命令完成

  3.1 博主是通过重启服务的方式来释放资源,重启服务之后,果然磁盘占用就降下来了,但是也有另外一种方法

  3.2 另外一个办法就是在线清空下那个对应的日志文件

   echo "" > xxx.log,这算是一个取巧的操作,直接把文件置空,服务也可以用,文件大小也可以控制下来了

 

希望博主写的内容可以帮到各位~

标签:文件,删除,占用,磁盘空间,meta,linux,日志,咋办,指针
来源: https://www.cnblogs.com/Michaeltaotao/p/15352074.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有