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

Linux磁盘空间不足,12个详细的排查方法

在Linux系统运维过程中,磁盘空间不足是一个常见且棘手的问题。当磁盘空间被占满时,系统的正常运行会受到影响,甚至可能导致服务中断。因此,迅速有效地排查和解决磁盘空间问题显得尤为重要。本文将详细介绍16个排查Linux磁盘空间问题的详细方法,帮助运维人员快速定位问题并解决。

1:使用df命令查看磁盘使用情况

df命令是Linux系统中用于查看文件系统磁盘空间使用情况的工具。通过运行以下命令,可以查看各个挂载点的磁盘使用情况:

df -h

该命令会以易读的格式(如GB、MB等)显示每个挂载点的总空间、已用空间、可用空间和挂载点等信息。通过此命令,可以快速定位哪个挂载点的空间使用率较高。

2:使用du命令查找大文件或目录

如果通过df命令发现某个挂载点的空间使用率较高,接下来可以使用du命令来查找该挂载点下占用空间较大的文件或目录。以下是一些常用的du命令示例:

• 查看当前目录下每个子目录的磁盘使用情况:

du -sh *

• 递归查看当前目录及其子目录下的磁盘使用情况,并只显示前N层目录的总大小:

du -h --max-depth=N

• 查找并排序显示当前目录及其子目录下占用空间最大的前N个文件或目录:

du -ah . | sort -rh | head -n N
3:检查隐藏文件和目录

有时,一些隐藏文件或目录(以.开头的文件或目录)可能会占用大量磁盘空间。可以通过以下命令来查找隐藏文件或目录的大小:

du -sh .[!.]*

该命令会显示当前目录下所有隐藏文件或目录的大小。

4:检查系统日志文件

系统日志文件是记录系统运行时产生的各种信息的文件,如/var/log目录下的各种日志文件。这些日志文件可能会随着时间的推移而不断增长,占用大量磁盘空间。可以通过以下命令查看这些日志文件的大小:

du -sh /var/log/*

如果发现某个日志文件特别大,可以考虑对其进行压缩、轮转或清理。

5:清空文件内容以释放空间

对于找到的每个被删除但仍然占用空间的文件,您可以通过将其内容清空来释放空间。这可以通过
重定向空内容到文件描述符来实现,例如:

echo >/proc/PID/fd/FD_NUM

其中PID是进程的ID,FD_NUM是文件描述符的数字;这个操作不会删除文件,而是将文档内容清空的方法释放空间,文件仍存在。

6:检查用户主目录

用户主目录下的个人文件可能会占用大量磁盘空间。可以通过以下命令查看每个用户主目录的大小:

du -sh /home/*

如果发现某个用户的主目录特别大,可以进一步查看该用户目录下的文件大小,并与其沟通进行清理。

7:检查Docker容器和镜像

如果系统中运行了Docker容器,那么Docker镜像和容器文件系统也可能会占用大量磁盘空间。可以通过以下命令查看Docker镜像和容器的大小:

docker system df

对于不再需要的镜像或容器,可以进行删除以释放空间。

8:检查未释放的磁盘空间

有时,即使删除了大量文件,磁盘空间可能仍然没有释放。这可能是因为被删除的文件仍然被某些进程占用。可以通过以下命令查找被占用的已删除文件:

lsof | grep deleted

如果找到了被占用的已删除文件,可以尝试重启占用这些文件的进程以释放空间。

9:检查文件系统错误

最后,如果以上方法都无法解决问题,可能需要检查文件系统是否存在错误。可以使用fsck命令来检查和修复文件系统错误。但请注意,在运行fsck命令之前,必须卸载文件系统或在单用户模式下运行该命令。

umount /dev/sdXN
fsck /dev/sdXN

其中,/dev/sdXN是要检查的文件系统对应的设备文件。

当然,除了上述十种方法外,还有一些额外的步骤和工具可以帮助进一步排查和解决Linux磁盘空间问题。以下是几个额外的补充方法:

10:检查并清理软件包缓存

在Linux系统中,安装和更新软件包时,系统会缓存下载的软件包文件。随着时间的推移,这些缓存文件可能会占用大量磁盘空间。对于基于Debian的系统(如Ubuntu),可以使用以下命令清理APT缓存:

sudo apt-get clean

对于基于RPM的系统(如CentOS、Fedora),可以使用以下命令清理YUM缓存:

sudo yum clean all
11:检查并清理内核模块

在Linux系统中,随着内核的更新,旧的内核模块可能会被保留下来,占用磁盘空间。可以使用以下命令列出所有安装的内核,并手动删除不再需要的旧内核:

dpkg --list | grep linux-image

(对于基于Debian的系统)或

rpm -qa | grep kernel

(对于基于RPM的系统)

然后,可以使用相应的包管理工具(如dpkg -rrpm -e)来卸载不再需要的内核包。

12:使用磁盘使用分析工具

除了手动使用dfdu命令外,还可以使用一些磁盘使用分析工具来更直观地查看磁盘使用情况。例如,ncdu是一个基于ncurses的磁盘使用分析工具,可以提供交互式界面来浏览和删除文件。

sudo apt-get install ncdu  # 对于基于Debian的系统
sudo yum install ncdu      # 对于基于RPM的系统
sudo ncdu /

相关文章:

Linux磁盘空间不足,12个详细的排查方法

在Linux系统运维过程中,磁盘空间不足是一个常见且棘手的问题。当磁盘空间被占满时,系统的正常运行会受到影响,甚至可能导致服务中断。因此,迅速有效地排查和解决磁盘空间问题显得尤为重要。本文将详细介绍16个排查Linux磁盘空间问…...

Spring Web MVC综合案例

承接上篇文章——Spring Web MVC探秘,在了解Spring Web MVC背后的工作机制之后,我们接下来通过三个实战项目,来进一步巩固一下前面的知识。 一、计算器 效果展示:访问路径:http://127.0.0.1:8080/calc.html 前端代码&a…...

微软预测 AI 2025,AI Agents 重塑工作形式

1月初,微软在官网发布了2025年6大AI预测,分别是:AI模型将变得更加强大和有用、AI Agents将彻底改变工作方式、AI伴侣将支持日常生活、AI资源的利用将更高效、测试与定制是开发AI的关键以及AI将加速科学研究突破。 值得一提的是,微…...

lvgl性能调优

LV_USE_PERFORMANCE lvgl_performance 是 LVGL 提供的性能分析工具,可以帮助开发者评估和优化图形库的性能。在一些特定的版本中,lvgl_performance 是一个宏或者工具,用来分析性能瓶颈,特别是图形渲染的效率。 下面是如何使用 l…...

CSS实现实现票据效果 mask与切图方式

一、“切图”的局限性 传统的“切图”简单暴力,但往往缺少适应性。 适应性一般有两种,一是尺寸自适应,二是颜色可以自定义。 举个例子,有这样一个优惠券样式 关于这类样式实现技巧,之前在这篇文章中有详细介绍: CSS 实现优惠券的技巧 不过这里略微不一样的地方是,两个…...

STL--list(双向链表)

目录 一、list 对象创建 1、默认构造函数 2、初始化列表 3、迭代器 4、全0初始化 5、全值初始化 6、拷贝构造函数 二、list 赋值操作 1、赋值 2、assign(迭代器1,迭代器2) 3、assign(初始化列表) 4、assig…...

ZooKeeper 中的 ZAB 一致性协议与 Zookeeper 设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色)

参考Zookeeper 介绍——设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色) ZooKeeper 设计目的、特性、使用场景 ZooKeeper 的四个设计目标ZooKeeper 可以保证如下分布式一致性特性ZooKeeper 是一个典型的分布式数据一致…...

“深入浅出”系列之C++:(11)推荐一些C++的开源项目

1. SQLiteCpp - 简单易用的Sqlite C封装库 仓库地址:https://github.com/SRombauts/SQLiteCpp 简介:SQLiteCpp是一个对Sqlite数据库进行C封装的开源库,代码行数约2,500行。它提供了简洁易用的接口,使得在C项目中操作Sqlite数据库…...

《重生到现代之从零开始的C++生活》—— 类和对象2

类的默认成员函数 默认成员函数就是用户没有显示实现,编译器会自动生成的成员函数,一个类会默认生成6个成员函数 构造函数 构造函数时特殊的成员函数,构造函数的初始化对象 函数名与类名相同 没有返回值 对象实例化的时候胡自动调用构造…...

“UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css

今天,又解决了一个单子“UniApp的音频播放——点击视频进入空白解决视频播放器切换视频时一直加载的问题” 一、问题描述 在开发一个基于 video.js 的视频播放器时,用户通过上下滑动切换视频时,视频一直处于加载状态,无法正常播放…...

【Pandas】pandas Series transform

Pandas2.2 Series Function application, GroupBy & window 方法描述Series.apply()用于将一个函数应用到 Series 的每个元素或整个 SeriesSeries.agg()用于对 Series 数据进行聚合操作Series.aggregate()用于对 Series 数据进行聚合操作Series.transform()用于对 Series…...

【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠

【个人主页】Francek Chen 【人生格言】征途漫漫,惟有奋斗! 【热门专栏】大数据技术基础 | 数据仓库与数据挖掘 | Python机器学习 文章目录 前言一、个人成长与盘点(一)机缘与开端(二)收获与分享 二、年度创…...

飞牛 使用docker部署Watchtower 自动更新 Docker 容器

Watchtower是一款开源的Docker容器管理工具,其主要功能在于自动更新运行中的Docker容器 Watchtower 支持以下功能: 自动拉取镜像并更新容器。 配置邮件通知。 定时执行容器更新任务。 compose搭建Watchtower 1、新建文件夹 先在任意位置创建一个 w…...

【Block总结】TAdaConv时序自适应卷积,轻量高效的时间建模卷积|即插即用

论文解读:Temporally-Adaptive Models for Efficient Video Understanding 论文信息 标题:Temporally-Adaptive Models for Efficient Video Understanding 发表时间:2023年 作者:黄子渊等 论文链接:arXiv 论文 代…...

Spring Boot 项目启动报错 “找不到或无法加载主类” 解决笔记

一、问题描述 在使用 IntelliJ IDEA 开发基于 Spring Boot 框架的 Java 程序时,原本项目能够正常启动。但在后续编写代码并重建项目后,再次尝试运行却出现了 “错误:找不到或无法加载主类 com.example.springboot.SpringbootApplication” 的…...

CSS 网络安全字体

适用于 HTML 和 CSS 的最佳 Web 安全字体 下面列出了适用于 HTM L和 CSS 的最佳 Web 安全字体: Arial (sans-serif)Verdana (sans-serif)Helvetica (sans-serif)Tahoma (sans-serif)Trebuchet MS (sans-serif)Times New Roman (serif)Georgia (serif)Garamond (se…...

Linux高并发服务器开发 第十五天(fork函数)

目录 1.fork 函数 1.1创建子进程 1.2getpid 函数 1.3getppid 函数 1.4getgid函数 1.5循环创建 n 个子进程 1.6fork后父子进程异同 1.6.1读时共享,写时复制 1.6.2fork后父子进程共享 1.6.3gdb调试父子进程 1.fork 函数 pid_t fork(void); 成功:…...

【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着机器学习在各行业的广泛应用,模型选择和优化成为了数据科学家面临的主要挑战之一。自动化机器学习&am…...

探秘自然地理:从太阳到地球的奇妙之旅与灾害预警

在浩瀚无垠的宇宙中,我们的地球与太阳紧密相连,它们的奥秘和变化,时刻影响着我们的生活。今天,就让我们一同深入探索自然地理的基础知识,揭开太阳与地球的神秘面纱,同时了解那些可能给我们带来巨大影响的自…...

go语言zero框架通过chromedp实现网页在线截图的设计与功能实现

在 GoZero 框架中实现网页在线截图的功能,可以通过集成 chromedp 库来控制 Chrome 浏览器进行截图。chromedp 是一个基于 Chrome DevTools 协议的 Go 包,可以用来在 Go 程序中模拟浏览器操作,如页面截图、DOM 操作、表单提交等。 下面是一个…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

shell脚本质数判断

shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数)shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数) 思路: 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...