iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >rm -rf之后磁盘空间没有释放的解决方法
  • 424
分享到

rm -rf之后磁盘空间没有释放的解决方法

rm-rf磁盘释放rm-rf空间释放 2022-06-04 23:06:16 424人浏览 独家记忆
摘要

目录rm -rf之后就高枕无忧了?du和ls的区别总结rm -rf之后就高枕无忧了? 现在运营的平台采用的是微服务架构,部署的服务较多,开发环境一台服务器上部署几十个服务是很正常的,之前用CI构建部署的时候,发现磁盘满了

目录
  • rm -rf之后就高枕无忧了?
  • du和ls的区别
  • 总结

rm -rf之后就高枕无忧了?

现在运营的平台采用的是微服务架构,部署的服务较多,开发环境一台服务器上部署几十个服务是很正常的,之前用CI构建部署的时候,发现磁盘满了。我的处理方式是:先删了 /tmp/ 目录, 空闲出部分空间,然后检查下几个常用的用户目录,发现几个日志文件占用了好几个大G,由于是开发环境,所以就直接删除, 于是 rm之后就天真地认为万事大吉了...

然而过几天后,又有同事发现该机器磁盘又满了,惊呼奇怪咋这么快又满了。最终发现是上次 rm后,占用好几个大G的日志文件被删除之后,磁盘空间并没有释放。Linux系统中是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_nlink,也就是说:linux系统中只有i_nlink及i_count都为0的时候,这个文件才会真正被删除。 

  • i_count表示当前文件使用者(或被调用)的数量
  •  i_nlink表示介质连接的数量(硬链接的数量);

可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。 当一个文件被某一个进程引用时,对应i_count数就会增加;当创建文件的硬链接的时候,对应i_nlink数就会增加。在linux或者Unix系统中,通过rm或者文件管理器删除文件,只是将它会从文件系统的目录结构上解除链接(unlink),实际上就是减少磁盘引用计数i_nlink,但是并不会减少i_count数。如果一个文件正在被某个进程调用,用户使用rm命令把文件"删除"了,这时候通过ls等文件管理命令就无法找到这个文件了,但是并不意味着这个文件真正的从磁盘上删除了。因为还有一个进程在正常的执行,在向文件中读取或写入,也就是说文件其实并没有被真正的"删除",所以磁盘空间也就会一直被占用。当服务进程停止(文件句柄的引用计数会变为0)或者重启后,占用的存储空间才被释放。如果不知道具体进程或文件名的话:lsof | grep deleted,这样会查找所有被删除的但是文件句柄没有释放的文件和相应的进程,然后再kill掉进程或者重启进程即可。

rm -rf之后磁盘空间没有释放的解决方法

其实可以简单用修改文件内容的方式(例如echo "test">test.log)在不用重启进程的情况下释放空间。

du和ls的区别

对于某个日志文件,直接用echo "test" > yyzx_tradinGCenterservice.log.2020-06-03.log,然后 df 确认磁盘空间确实已经释放,分别执行下面的命令:


[dev@tjptdebug-no yyzx_tradingcenterservice_logs]$ du -h  yyzx_tradingcenterservice.log.2020-06-03.log 
4.0K	yyzx_tradingcenterservice.log.2020-06-03.log
[dev@tjptdebug-no yyzx_tradingcenterservice_logs]$ ll -h  yyzx_tradingcenterservice.log.2020-06-03.log
-rw-rw-r-- 1 dev dev 7 Jul  8 19:49 yyzx_tradingcenterservice.log.2020-06-03.log

ls 的结果是 apparent sizes,我的理解是文件长度,就类似文件系统中 file 这个数据结构中的定义文件长度的这个字段,du 的结果 disk usage,即真正占用存储空间的大小,且默认度量单位是 block。block 为磁盘存储的基本的单位,方便磁盘寻址等,而此处的block可以理解为一个逻辑单位,且一个文件除了包括数据外,还需要存储描述此文件的其他信息,因此包含1个字节的文件实际在磁盘中占用的存储空间不止1个字节。

总结

du == disk usage (磁盘使用量,占用的磁盘空间)
ls == apparent sizes(文件长度,file数据结构中定义的文件长度字段)
一个文件占用NwIGr的磁盘空间和一个文件的大小是两码事情。占用空间取决于文件系统的块(block)的大小,Linux一般默认是4k(4096) ,因此,一个大小为1个字节的文件,最小也要占用4k,如果你创建文件系统的时候制定块大小是16K,那么即便一个文件只有1个字节,占用空间也是16K。通常情况下,ls 显示的文件大小比du显示的磁盘占用空间小,比如文件系统的block是4K,一个13K的文件占用的空间是 13k/4k = 3.25 个block,一个block只能被一个文件占用,因此实际占用空间就是4个block,就是16K。

到此这篇关于rm -rf之后磁盘空间没有释放的解决方法的文章就介绍到这了,更多相关rm -rf磁盘释放内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: rm -rf之后磁盘空间没有释放的解决方法

本文链接: https://www.lsjlt.com/news/21410.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统下rm删除/mv移动文件后磁盘空间没有释放
    目录 一、问题背景 二、问题描述 三、问题解决 1、检查服务器占用硬盘资源的文件 2、查看删除文件被占用的具体情况 3、如何让进程释放? 一、问题背景 由于生产环境所部署的服务版本太老,加上部署时磁盘规划不合理,导致近几天服务日志增加...
    99+
    2023-10-09
    linux 运维 服务器
  • linux删除后未释放磁盘空间怎么解决
    当在Linux中删除文件时,文件系统不会立即释放磁盘空间。相反,它将把空间标记为可用,以便在以后存储新文件。 如果您使用的是ext2...
    99+
    2023-10-25
    linux
  • MySQLdelete删除数据后释放磁盘空间的操作方法
    目录一、删除表|清空数据表二、删除表数据三、优化表空间当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种...
    99+
    2024-04-02
  • MongoDB Drop集合不释放磁盘空间的解决办法
    C:\Users\duansf>mongo MongoDB shell version: 2.6.6 connecting to: test > use test switched to db...
    99+
    2024-04-02
  • Mysql 删除数据,磁盘空间未释放解决办法
    公司的服务器上添加了硬盘监控,收到报警后,确认是mysql的文件占用空间比较大。于是,确认是哪个表占空间比较大后,删除了部分数据,服务器硬盘空间并没有释放掉,报警仍旧存在。 原因及解决办法: 使用de...
    99+
    2023-09-11
    mysql 数据库
  • Ubuntu系统释放磁盘空间的方法是什么
    这篇文章主要介绍“Ubuntu系统释放磁盘空间的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu系统释放磁盘空间的方法是什么”文章能帮助大家解决问题。和Windows系统不同,U...
    99+
    2023-06-27
  • MySQL5.7的表删除数据后的磁盘空间释放过程
    本篇内容介绍了“MySQL5.7的表删除数据后的磁盘空间释放过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • 笔记本电脑磁盘剩余空间没有显示的解决方法
    小编给大家分享一下笔记本电脑磁盘剩余空间没有显示的解决方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!点击开始菜单中的“运行”或按win+r打开运行窗口,输入regedit回车打开注册表。在注册表中打开HKEY_CLAS...
    99+
    2023-06-28
  • linux系统删除文件之后服务器磁盘空间未释放处理
    一、通过rm 删除文件之后磁盘空间未释放,这是有进程仍在占用被删除的文件,要想真正的删除,只需要停止或重启进程,就会自动释放磁盘空间 二、应用进程很重要不能重启或停止,可以使用以下方法: 1.查看占用...
    99+
    2023-08-31
    linux 运维 服务器
  • minio删除文件没有释放空间怎么解决
    如果使用MinIO删除文件后,存储空间没有被释放,可以尝试以下几个解决方法: 等待自动回收:MinIO会定期执行垃圾回收任务,清...
    99+
    2024-04-09
    minio
  • Linux删除了文件后空间没有释放原因及如何解决
    这篇文章主要介绍了Linux删除了文件后空间没有释放原因及如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux删除了文件后空间没有释放原因及如何解决文章都会有所收获,下面我们一起来看看吧。我们的一台...
    99+
    2023-06-28
  • Mongodb 删除集合数据后释放磁盘空间的操作步骤
    目录删除集合Compact 集合分片集群删除集合 在MongoDB当集合数据占用比较多,对其进行清理后,集合存储空间下降,但磁盘空间并没释放,对于具有活动更新的集合来说,有一些可重用的空间是正常的。过多的可重用空间通常是...
    99+
    2023-11-21
    Mongodb释放磁盘空间 Mongodb 删除集合数据
  • docker磁盘空间清理的解决办法
    前段时间遇到docker磁盘空间太少,无法写入数据的问题。起因是因为我在本地(Mac Pro)运行了多个mysql容器,并且导入了一部分线上数据,最后还没导入完毕就已经没有可用空间了...
    99+
    2024-04-02
  • ubuntu清理磁盘空间的方法有哪些
    这篇文章主要讲解了“ubuntu清理磁盘空间的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ubuntu清理磁盘空间的方法有哪些”吧!Linux系统的硬盘并没有它所能达到的一样轻巧...
    99+
    2023-06-13
  • linux重启之后挂载的磁盘没了如何解决
    当Linux重启后挂载的磁盘消失时,可以按照以下步骤来解决问题:1. 检查磁盘是否存在:运行`lsblk`或`fdisk -l`命令...
    99+
    2023-09-15
    linux
  • Linux磁盘空间管理的方法有哪些
    Linux磁盘空间管理的方法有以下几种:1. df命令:用于显示文件系统的总体磁盘使用情况,包括每个文件系统的可用空间、已使用空间、...
    99+
    2023-08-25
    Linux
  • Docker容器导致磁盘空间不足无法访问的解决方法
    目录问题:1.进入运行的容器目录2.查看容器的配置信息3.删除日志文件4.正常进入容器问题: 客户反馈说系统操作,出现问题,查询数据报错,我第一想到的是Redis是不是挂了导致一些存...
    99+
    2024-04-02
  • Win10磁盘空间使用量指示条不见了的解决方法
    这篇文章主要介绍Win10磁盘空间使用量指示条不见了的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Win10系统下,打开我的电脑,你就可以看到每个磁盘的空间使用量,总容量、已用容量、可用空间,这样对你的硬...
    99+
    2023-06-10
  • MySQL如何解决delete大量数据后空间不释放的问题
    本篇内容主要讲解“MySQL如何解决delete大量数据后空间不释放的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL如何解决delete...
    99+
    2024-04-02
  • windows我的文档移动到d盘后C盘空间没变怎么解决
    这篇文章主要讲解了“windows我的文档移动到d盘后C盘空间没变怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows我的文档移动到d盘后C盘空间没变怎么解决”吧!我的文档移...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作