Linux 磁盘满了怎么办?快速排查和清理方法
当 Linux 磁盘满了,会导致系统无法正常运行,比如无法写入文件、服务停止、甚至系统崩溃。因此,快速排查并清理磁盘空间是非常重要的。以下是详细的排查和解决步骤:
一、快速定位磁盘占用原因
1. 检查磁盘使用情况
使用 df
命令查看磁盘分区的使用情况:
bash
复制
df -h
- 参数说明:
-h
:以人类可读的格式显示(GB、MB)。
- 输出示例:
plaintext
复制
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 45G 5G 90% / /dev/sda2 100G 95G 5G 95% /home
如果某个分区(如 /
或 /home
)的 Use% 达到接近 100%,说明该分区已满。
2. 找出大文件和目录
(1) 使用 du
查找占用最多的目录
du
命令用于分析文件和文件夹的磁盘占用情况:
bash
复制
du -h --max-depth=1 /
- 参数说明:
-h
:以人类可读的格式显示。--max-depth=1
:只查看顶级目录的大小。
- 输出示例:
plaintext
复制
5.0G /var 20G /home 15G /usr 1.2G /tmp
根据输出结果,进一步深入到占用空间较大的目录(如 /home
):
bash
复制
du -h --max-depth=1 /home
(2) 使用 find
查找大文件
查找超过 1GB 的大文件:
bash
复制
find / -type f -size +1G 2>/dev/null
- 参数说明:
-type f
:只查找文件。-size +1G
:查找大于 1GB 的文件。2>/dev/null
:忽略权限不足导致的错误。
3. 检查挂载点问题
有时磁盘分区挂载错误可能导致文件写入到了根目录,而不是正确的挂载点:
- 检查是否有挂载问题:
bash
复制
mount
- 如果某个挂载点(如
/mnt/data
)没有正确挂载,可能会导致根分区被写满。 - 解决方法:
- 确认挂载点:
bash
复制
df -h
- 如果未正确挂载,重新挂载分区:
bash
复制
sudo mount /dev/sdX /mnt/data
- 确认挂载点:
二、清理磁盘空间
清理磁盘空间时,应谨慎操作,避免删除系统关键文件。以下是常见的清理方法:
1. 清理系统日志
(1) 检查日志目录
Linux 日志通常存储在 /var/log
中:
bash
复制
du -h /var/log
(2) 删除过大的日志文件
如果发现某些日志文件过大(如 syslog
或 journal
文件),可以清理或压缩:
bash
复制
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log
(3) 清理 journal
日志
对于使用 systemd
的系统(如 Ubuntu 和 CentOS 7+),日志可能存储在 journal
中:
- 查看日志占用空间:
bash
复制
journalctl --disk-usage
- 清理日志(保留最近 7 天的日志):
bash
复制
sudo journalctl --vacuum-time=7d
2. 清理缓存文件
(1) 清理 apt
缓存(适用于 Debian/Ubuntu)
APT 会缓存已下载的软件包,占用大量空间:
bash
复制
sudo apt-get clean
(2) 清理 yum
缓存(适用于 CentOS/RHEL)
bash
复制
sudo yum clean all
(3) 清理临时文件
临时文件通常存储在 /tmp
目录中,可以安全删除:
bash
复制
sudo rm -rf /tmp/*
3. 删除未使用的旧内核
(1) 列出已安装内核
在 Ubuntu/Debian 系统中,列出所有内核版本:
bash
复制
dpkg --list | grep linux-image
(2) 删除旧内核
保留当前内核和最近的一个版本,其余都可以删除:
bash
复制
sudo apt-get autoremove --purge
对于 CentOS 系统:
bash
复制
sudo yum remove kernel-oldversion
4. 查找和清理无用文件
(1) 清理大文件
使用 find
找到大文件后,确认是否不再需要这些文件,删除它们:
bash
复制
sudo rm -f /path/to/large-file
(2) 清理用户的下载目录
检查 /home
目录下的用户文件:
bash
复制
du -h --max-depth=1 /home
删除不需要的文件或备份到其他存储设备。
5. 卸载不必要的大型软件包
(1) 列出已安装的软件包及其大小
在 Debian/Ubuntu 系统中:
bash
复制
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n
在 CentOS/RHEL 系统中:
bash
复制
rpm -qa --qf '%10{SIZE}\t%{NAME}\n' | sort -n
(2) 卸载不需要的软件
例如,卸载某个软件包:
bash
复制
sudo apt-get remove --purge package-name
或:
bash
复制
sudo yum remove package-name
6. 压缩备份文件
如果某些文件需要保留但不常用,可以压缩后存储:
bash
复制
tar -czvf backup.tar.gz /path/to/large-directory
然后将压缩文件移动到其他存储设备或云端。
三、预防磁盘再次占满的策略
-
定期监控磁盘使用
- 使用
cron
定期运行df
或du
,并发送邮件报警:bash
复制
df -h | mail -s "Disk Usage Report" your-email@example.com
- 使用
-
设置磁盘占用警告
- 在
/etc/fstab
中启用磁盘配额(Quota)功能,限制用户或目录的磁盘使用量。
- 在
-
使用独立分区管理
- 将日志目录(
/var/log
)、临时目录(/tmp
)、用户目录(/home
)分区分开,避免单个分区写满后影响整个系统。
- 将日志目录(
-
扩容磁盘
- 如果所有清理措施后仍无法满足需求,可以考虑扩展磁盘(如通过云服务商增加硬盘空间)。
四、总结
当 Linux 磁盘满了时,按照以下步骤操作:
- 快速排查:使用
df
和du
定位问题分区和目录。 - 清理无用文件:删除日志、缓存、临时文件和旧内核。
- 优化存储:压缩或转移大文件,卸载不必要的软件。
- 长期策略:定期监控磁盘使用,分区独立管理或扩容磁盘。
通过上述方法,您可以快速释放磁盘空间并防止磁盘再次被占满。
相关文章:

Linux 磁盘满了怎么办?快速排查和清理方法
当 Linux 磁盘满了,会导致系统无法正常运行,比如无法写入文件、服务停止、甚至系统崩溃。因此,快速排查并清理磁盘空间是非常重要的。以下是详细的排查和解决步骤: 一、快速定位磁盘占用原因 1. 检查磁盘使用情况 使用 df 命令查…...

【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)
原文链接: https://tecdat.cn/?p38564 本年度,国家及地方政府持续发力,推出诸多政策组合拳,全力推动汽车产业向更高质量转型升级,积极鼓励消费升级,并大力推行以旧换新等惠民生、促发展举措。尤为引人注目…...

数据结构之链表笔试题详解
一:移除链表元素 我们很容易就可以想到一个解决方案:再创建一个链表,把不是val的结点拿过来尾插。 这样确实可以但是,我们每次尾插都需要遍历一遍整个链表,这样时间复杂度就变成了O(n^2), 因此我们不妨设…...

结构化的Prompt
资源库: AI 提示词-WayToAGI精选高效的AI提示词库,助力创作者和开发者解锁人工智能的潜力。通过我们的提示词和策略,优化您的AI工具使用效率,激发创意思维,提升产出质量。https://www.waytoagi.com/prompts?tag6 结构…...

【数字化】华为数字化转型架构蓝图
导读:华为的数字化转型规划团队在2016年年底基于对愿景的系统诠释,整合出了数字化转型架构蓝图。该蓝图共分为5层,旨在通过数字化转型实现客户交互方式的转变、作战方式的转变、公司各平台业务能力的数字化、服务化以及运营模式的转变。 目录…...

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南
全开源IM(即时通讯)系统源码部署是一个复杂但系统的过程,涉及多个组件和步骤。以下是一个详细的部署指南,旨在帮助开发者或系统管理员成功部署一个全开源的IM系统,如OpenIM。 IM即时通讯系统源码准备工作 …...
go 跨平台打包
GOARCH是Go语言中的一个环境变量,用于指定目标平台的底层架构。在Go的交叉编译过程中,GOARCH决定了编译出的二进制文件将在哪种硬件架构上运行。 GOARCH的常见值 amd64:64位 x86 架构386:32位 x86 架构arm&am…...
C++ 给定字符串,然后给出开始要取的位置,返回取到的信息
3 happy new year 7 year 1 new 4 new year year error input #include <stdio.h> #include <string.h> void strmcpy(char* s, char* t, int m); int main() {int repeat, m;char t[1000], s[1000];scanf("%d", &repeat);getchar(); //吸收换行符in…...

【树莓派4B】MindSpore lite 部署demo
一个demo,mindspore lite 部署在树莓派4B ubuntu22.04中,为后续操作开个门! 环境 开发环境:wsl-ubuntu22.04分发版部署环境:树莓派4B,操作系统为ubuntu22.04mindspore lite版本:mindspore-li…...

Idea汉化插件Datagrip汉化插件
汉化插件 Chinese (Simplified) Language Pack / 中文语言包 插件地址 安装完了之后,如果还不是中文的怎么办 需要手动设置 Seetings -> Appearance & Behavior -> System Settings -> Language and Region -> Language 修改为 [ Chi…...

精彩回顾|Cocos开发者沙龙长沙站
长沙-不一样 Cocos 开发者沙龙长沙站,完全超出了我们的预期,一开始还担心没有太多人报名。最后发现,全场爆满,座无虚席。 <<< 左右滑动见更多 >>> 许多小伙伴曾反馈过,在以往的开发者沙龙回顾文章中…...

算法日记 49 day 图论(A*算法)
这算是算法的最后一篇了,原本A*之前还有一些相关的最短路径算法的,比如dijkstra的堆优化,SPFA等等,但是有些我没看懂,就不写了,用A*做个结尾。 题目:骑士的攻击 127. 骑士的攻击 (kamacoder.co…...
服务器批量清理redis keys,无法适用客户端必须直连的情况
在 Redis 中,批量清理指定模式的键(例如 memberCardData:*)可以通过多种方法来实现。需要注意的是,Redis 的命令执行是单线程的,因此对大量键进行操作时可能会阻塞服务器。以下是几种常见的方法: shell K…...

Grafana配置告警规则推送企微机器人服务器资源告警
前提 已经部署Grafana,并且dashboard接入数据 大屏编号地址:Node Exporter Full | Grafana Labs 创建企微机器人 备注:群里若有第三方外部人员不能创建 机器人创建完成,记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…...
数字货币金融研究,深度学习虚拟币价格预测 数据集 市值top20 (2014年—2024年)
比特币,以太坊,狗狗币,屎币,模因币 声明 此数据集的目的是 用于数字货币金融研究,深度学习虚拟币价格预测 1、数据集 2014年——2024年 市值top20 比特币,以太坊,屎币,狗狗币交易…...

druid.properties图标是齿轮
一、问题 在IDEA中, druid.properties图标是齿轮 二、原因 2023版本开始,IDEA新的UI的问题 三、解决方法 1、点击右上角的齿轮图标 2、点击Settings 3、Appearance & Behavior---->New UI---->取消勾选“Enable new UI”---->右下角OK 4…...

【图像处理】利用numpy、opencv、python实现车牌检测
| 利用opencv实现车牌检测 整体流程涉及5个部分 图像通道转换对比度增强边缘连接二值化边界区域裁剪 图像通道转换 将RGB图像转换为HSV图像,仅保留V通道。V通道表示颜色的明暗,常用于图像对比度拉伸、直方图均衡化等流程。 原图像: V通…...
ModuleNotFoundError: No module named ‘torchvision.transforms.functional_tensor‘
问题: 运行代码时,报错: … File “/home/xzy/anaconda3/envs/groundinggpt/lib/python3.10/site-packages/pytorchvideo/transforms/augmix.py”, line 6, in from pytorchvideo.transforms.augmentations import ( File “/home/xzy/anac…...
Android无障碍服务监听实现自动点击按钮
原理: 通过监听窗口改变事件,监听目标应用,通过视图ID(或文本、或描述、或其他如坐标之类的)找到目标视图,使用无障碍动作点击方法点击它 无障碍服务实现: 1、写一个自己的无障碍服务继承Acc…...
Deveco Studio首次编译项目初始化失败
编译项目失败 Ohpm install失败的时候重新使用管理者打开程序 build init 初始化失败遇到了以下报错信息 Installing pnpm8.13.1... npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/pnpm failed, r…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...