当前位置: 首页 > news >正文

【Linux】磁盘空间莫名消失,找不到具体原因的思路

磁盘空间莫名消失,找不到具体原因的思路

先说下常见的几种原因:

1、删除的文件未释放空间

2、日志或过期文件未及时清理

3、inode导致

4、隐藏文件夹或者目录

6、磁盘碎片

最后一种单独介绍。

环境:情况是根分区(/)的总容量为44GB,已使用了9.9GB,但实际文件内容查询显示只有7GB的文件,剩余的2GB似乎没有直接可见的文件。这种情况可能是由于以下几种原因导致的:

可能原因及排查方法:

1. 删除文件未释放空间(缓存和懒加载):
  • 在Linux系统中,当你删除一个文件时,系统并不会立刻释放磁盘空间,尤其是在文件被某些进程占用的情况下。即使文件已经被删除,它的空间也不会立即释放,直到该文件不再被任何进程使用。

  • 解决办法:可以使用lsof命令查看哪些文件被进程占用。若发现已删除的文件仍被某个进程占用,可以通过重启进程或重启系统来释放空间。

    lsof | grep deleted
    
  • 该命令会列出所有已删除但仍被进程占用的文件。

    kill -9  <上述命令找到的pid> 
    # 上述命令会杀掉进程,生产慎重操作!
    
2. 日志文件或临时文件未清理:
  • 系统中有很多临时文件或者日志文件,这些文件可能不会出现在常规目录(如 /home/var)下,但它们依然占用空间。例如,/var/log 下的日志文件可能非常大。

  • 解决办法:检查 /var/log 等目录是否有过大的日志文件。你可以使用 du -sh 来查找占用空间最多的目录:

    du -sh /* | sort -h
    
3. 文件系统占用空间:
  • 文件系统可能被其他非文件数据(如 inode 或文件系统缓存)占用了空间。即使文件已经删除,文件系统中仍可能存在未释放的空间。

  • 解决办法:可以运行 dfdu 命令检查文件系统和磁盘使用情况:

    df -h  # 查看分区使用情况
    df -ih # 查看inode占用情况
    du -sh /  # 查看根分区的空间占用情况
    rm -f /tmp/*  # 删除临时文件,将inode释放
    
4. 隐藏文件或目录:
  • 在Linux系统中,所有以“.”开头的文件和目录是隐藏的。你可能未能查找这些隐藏的文件或目录。

  • 解决办法:使用 duls 命令查看隐藏文件:

    ls -la # 使用ls -la 命令可以看到全部文件,包括隐藏文件
    du -sh .cache   # 查看隐藏文件
    
5. 磁盘碎片:
  • 在某些情况下,尤其是在较老的文件系统中,磁盘碎片可能会导致空间不一致的问题,尽管现代的文件系统(如 ext4、XFS)通常能够有效管理碎片。

    检查并优化文件系统碎片:

    • 对于 ext4 文件系统,你可以尝试使用 e4defrag 工具对文件系统进行碎片整理:

      sudo e4defrag /dev/sda1   ## 这里需要注意,/dev/sda1 分区为ext4
      
    • 这个过程可能需要一些时间,尤其是当文件系统中存在大量小文件时。整理碎片后,执行 df -h 查看空间是否得到释放。

6. 磁盘空间占用:
  • 这个问题之前没有考虑,后续发现确实可能存在这个问题

做一个实验

准备:1个虚拟机,2块盘,一个正常使用,另一个给20G,测试用

1、创建一个/data路径

mkdir /data  # 这里路径名称无所谓,但必须要在根分区

2、在/data下面,手动dd一个文件,比较大的

dd if=/dev/zero of=/data/test.dmp count=1 bs=5G

3、执行df -h 查看分区大小
在这里插入图片描述

4、格式化第二个盘

mkfs.ext4 /dev/sdb  ## 不需要分区,直接格式化就行

5、挂载到/data路径下

mount /dev/sdb /data

6、再次查看分区大小
在这里插入图片描述

发现一个问题,之前生成的2G的测试文件,并没有在新分区挂载后显示。应该是被覆盖了,但/的大小却没有释放。

7、卸载/dev/sdb在看后,test.dmp文件还在。
在这里插入图片描述

总结,如果磁盘空间占用太多,可能用这个方法看看是否是挂载新盘之前,有数据落在了之前的文件夹没有及时清理

相关文章:

【Linux】磁盘空间莫名消失,找不到具体原因的思路

磁盘空间莫名消失&#xff0c;找不到具体原因的思路 先说下常见的几种原因&#xff1a; 1、删除的文件未释放空间 2、日志或过期文件未及时清理 3、inode导致 4、隐藏文件夹或者目录 6、磁盘碎片 最后一种单独介绍。 环境&#xff1a;情况是根分区&#xff08;/&#xf…...

智能体实战(需求分析助手)一、需求概述及迭代规划

需求分析助手开发迭代规划 功能概述 需求分析助手是一款基于大模型的智能系统,旨在帮助用户高效完成需求获取、需求分析、需求文档编写及需求验证的全流程工作。通过对用户输入的智能处理和分析,需求分析助手能够简化需求管理流程,并根据不同业务场景提供定制化支持。 核心…...

idea | maven项目标红解决方案 | 强制刷新所有依赖

场景&#xff1a;父pom多模块&#xff0c;新增时&#xff0c;依赖正常&#xff0c;但是application.yml看起来没被springboot识别&#xff0c;试过rebuild、重开idea清除缓存&#xff0c;重新maven面板reload all maven projects, 试过pom文件的依赖先移除再重新粘贴导入进来&a…...

*【每日一题 基础题】 [蓝桥杯 2023 省 B] 飞机降落

题目描述 N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di 个单位时间&#xff0c;即它最早可以于 Ti 时刻开始降落&#xff0c;最晚可以于 Ti Di 时刻开始降落。降落过程需要 Li个单位时间…...

在Windows本地用网页查看编辑服务器上的 jupyter notebook

​ Motivation: jupyter notebook 可以存中间变量&#xff0c;方便我调整代码&#xff0c;但是怎么用服务器的GPU并在网页上查看编辑呢&#xff1f; 参考 https://zhuanlan.zhihu.com/p/440080687 服务端(Ubuntu)&#xff1a; 激活环境 source activate my_env安装notebook …...

OpenCV圆形标定板检测算法findGrid原理详解

OpenCV的findGrid函数检测圆形标定板的流程如下: class CirclesGridClusterFinder {CirclesGridClusterFinder(const CirclesGridClusterFinder&); public:CirclesGridClusterFinder...

自动图像标注可体验

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…...

Ansible基本用法

Ansible 1 Ansible概念 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理…...

MFC 应用程序语言切换

在开发多语言支持的 MFC 应用程序时&#xff0c;如何实现动态语言切换是一个常见的问题。在本文中&#xff0c;我们将介绍两种实现语言切换的方式&#xff0c;并讨论其优缺点。同时&#xff0c;我们还会介绍如何通过保存配置文件来记住用户的语言选择&#xff0c;以及如何在程序…...

Swift 的动态性

Swift 的动态性指的是 Swift 编程语言支持运行时操作的一些特性&#xff0c;使得代码的行为能够在运行时作出一定的调整或决策。这些特性通常可以让程序在运行时动态地添加、删除或修改对象的属性、方法等&#xff0c;而不是在编译时完全确定。 Swift 的动态性主要体现在以下几…...

用.Net Core框架创建一个Web API接口服务器

我们选择一个Web Api类型的项目创建一个解决方案为解决方案取一个名称我们这里选择的是。Net 8.0框架 注意&#xff0c;需要勾选的项。 我们找到appsetting.json配置文件 appsettings.json配置文件内容如下 {"Logging": {"LogLevel": {"Default&quo…...

lua dofile 传参数

cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua&#xff0c;结果为&#xff1a; First argument is: 111 Second argument is: 222 l…...

HTML 有效 DOCTYPES

HTML 有效 DOCTYPES 介绍 HTML文档类型定义&#xff08;DOCTYPE&#xff09;是HTML文档中的一个声明&#xff0c;它告诉浏览器该文档使用的HTML版本。这有助于浏览器正确地解析和渲染页面。本文将探讨各种有效的HTML DOCTYPE声明&#xff0c;并解释它们的作用。 HTML5 DOCTY…...

岁末回望,追梦远方

又到了岁末年初&#xff0c;按惯例&#xff0c;风云我都会写一篇长长的感悟&#xff0c;给自己辞旧的总结复盘&#xff0c;迎新的追梦定调&#xff0c;今年赋诗一首&#xff0c;畅想一下诗和远方&#xff0c;简洁而又虚无&#xff0c;缥缈中坚定初心。 岁末回首步履深&#xf…...

通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统

背景介绍 阿里云向量检索 Milvus 版是一款云上全托管服务&#xff0c;确保了与开源Milvus的100%兼容性&#xff0c;并支持无缝迁移。在开源版本的基础上增强了可扩展性&#xff0c;能提供大规模 AI 向量数据的相似性检索服务。相比于自建&#xff0c;目前阿里云Milvus具备易用…...

语音识别失败 chrome下获取浏览器录音功能,因为安全性问题,需要在localhost或127.0.0.1或https下才能获取权限

环境&#xff1a; Win10专业版 谷歌浏览器 版本 131.0.6778.140&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 问题描述&#xff1a; 局域网web语音识别出现识别失败 chrome控制台出现下获取浏览器录音功能&#xff0c;因为安全性问题&#xff0c;需要在…...

全域数据集成平台ETL

全域数据集成平台ETL Restcloud 工作原理 RestCloud数据集成平台采用SpringCloud微服务架构技术开发&#xff0c;底层基于纯Java语言采用前后端分离架构&#xff0c;前端采用React技术进行开发。 RestCloud数据集成平台是基于数据流工作流引擎的架构进行研发的&#xff0c;底…...

海外储能电站双向计量表功能参数介绍

摘要 随着全球能源结构的转型和储能技术的发展&#xff0c;对于电力系统的监控和管理提出了更高的要求。ADL3000-E-B 导轨式多功能电能表&#xff0c;由安科瑞电气股份有限公司研发&#xff0c;是一款为电力系统、工矿企业、公用设施设计的智能仪表。本文将从海外储能背景出发…...

javase-15、正则表达式

一、初识正则表达式 1、概念 正则表达式是对字符串操作的一种逻辑公式&#xff0c;它会将事先定义好的一些特定字符&#xff0c;以及这些特定字符的组合&#xff0c;组成一个规则字符串&#xff0c;并且通过这个规则字符串表达对给定字符串的过滤逻辑。 一条正则表达式也称为…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...