国内服务器
亚洲服务器
欧洲服务器
北美洲服务器
南美洲服务器
大洋洲服务器
非洲服务器

首页>>IDC资讯

Linux怎么处理文件已删除但空间不释放

发表时间:2022-05-30 10:01:25

桂哥网络和你分享了Linux是如何处理被删除的文件的,但是空间没有被释放。相信大部分人都不太了解,分享这篇文章,供大家参考。希望你看完这篇文章后收获很大。我们一起来看看。

问题产生背景

某业务系统的服务器监控系统发出了磁盘空间利用率达到90%的预警通知。然后,它降落在服务器,搜索相对较大的日志文件,全部被删除(坑埋在这里),释放了一些磁盘空间。当时也是疏忽,没有确认找到并删除的文件大小的空间是不是已经全部释放。几天后,服务器再次受到警告。我想知道木头怎么长得这么快。经过调查,发现上一次操作删除文件后,有很大的文件空间没有释放。

问题还原及解决办法

找到占用空间大的数据文件

#检查磁盘空间使用情况

$df-h

#首先查询/tmp目录中空间大的文件

$du-sh/tmp/*|sort-nr|head-3

#在查询/主目录中占据很大空间的文件

$du-sh/home/*|sort-nr|head-3

#找到文件后,删除。删除后,用df-h检查是不是已经发布。解释为啥在查找文件时,首先在/tmp/*目录中找到文件

Linux系统删除策略:Linux没有回收站功能,所以要删除的文件会先移动到system /tmp目录下,然后定期清除/tmp目录下的数据。

有许多服务器在安装系统时没有单独分区/tmp,因此/tmp目录中的数据可能会占用很大一部分空间,因此可以首先清除/tmp目录中的文件来释放空间。

这一次,删除文件并不释放空间,而是在/home目录空间中删除dubbo服务日志文件时发生。

删除文件不释放空间原因

通常情况下,删除文件后不会释放空间,但当文件被进程锁定或进程不断向文件写入数据时,仍会出现这种情况。了解Linux下文件存储机制和结构的原理,有助于我们理解这个问题。

文件存在于Linux系统中,分为指针部分和数据部分两部分。

指针部分:存在于文件系统的元数据中。在我们执行rm命令删除数据后,这个指针从元数据中清除。

数据部分:数据直接存储在磁盘上。当指针从元数据中清除时,数据部分所占据的空间可以被覆盖,并且可以写入新的内容。

之所以删除dubbo日志文件后不释放空间,是因为dubbo进程一直在往这个文件里写数据,删除文件时没有从元数据里去掉指针,所以日志文件还是占用空间。

如何找到此类文件

您可以通过lsof命令获得已删除但仍被程序占用的文件列表:

如何释放此类空间

解决这类问题,释放空间的方法有很多:重启被占用的进程,重启操作系统,传递命令。前两种方法对于非生产环境是最方便的,但是对于生产环境,尽量使用命令方法,其实命令也很简单:

Echo''/home/dubbo/log/xxx.log这样会释放占用的磁盘空间,不会影响进程继续执行。

“Linux如何处理删除的文件而不释放空间”这篇文章的内容就这么多了。感谢阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。如果你想学习更多的知识,请关注桂哥网络!


上一篇 下一篇
最新文章

如何提高云服务器的安全系数

香港独立IP空间有什么优势

香港空间影响百度收录吗

为啥要租用美国VPS

VPS的缺点有哪些

香港vps作用在哪里

VPS的优点有哪些

外贸网站为啥选择美国vps

VPS能建多少个网站

VPS要如何选择位置

相关文章

阿里云云主机建立网站吗

日本韩国服务器:互联网世界的东亚巨擘

美国达拉斯SL机房简单介绍

AWS的网站加速服务有哪几种?

搭建的小程序要如何留住用户流量?跟小程序服务器有关系吗?

网站租赁SSL证书好处有哪因素有哪些

服务器常用的四款操作系统是什么

美国空间服务器租用有何优势?

韩国服务器托管合同条款解读:保障用户权益

组网 RD路由区分器

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!