Linux磁盘空间管理:df与du命令实战解析

发布时间:2026/7/17 2:51:04

Linux磁盘空间管理:df与du命令实战解析
1. Linux磁盘空间管理基础认知当你在终端敲下命令时突然看到No space left on device的红色警告那种感觉就像开车时油表突然亮起红灯。作为Linux系统管理员磁盘空间管理是最基础的生存技能之一。不同于Windows系统的图形化显示Linux需要掌握一系列命令行工具才能准确诊断空间问题。1.1 磁盘空间监控双雄df与dudfdisk filesystem是系统级的空间侦察兵它能快速扫描所有挂载点。我最常用的组合是df -hT这里的-h参数让输出以人类可读的单位显示GB/MB而-T会显示文件系统类型。典型输出如下Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 50G 47G 1.2G 98% / tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm当Use%超过90%时就需要警惕了。不过要注意某些特殊文件系统如tmpfs显示的使用量可能包含内存缓存实际空间占用需要结合du验证。dudisk usage则是文件级的空间侦探。我最推荐的方式是du -h --max-depth1 / | sort -h这个命令会以MB/GB为单位显示根目录下所有一级子目录的大小并按人类可读格式排序。--max-depth1控制扫描深度对于大型目录可以显著减少扫描时间。警告在业务高峰期谨慎使用du扫描大目录可能引发I/O负载飙升。我曾因为扫描一个包含数百万小文件的目录导致数据库响应延迟。1.2 空间异常的特征识别健康的磁盘空间消耗应该符合目录树规律——越靠近根目录的层级占用空间越大。当出现以下反常情况时需要特别注意/var/log爆满日志文件未轮转常见于未配置logrotate的服务/tmp异常膨胀应用程序崩溃后遗留临时文件隐藏目录占用如Docker的/var/lib/docker/overlay2可能悄悄吞噬空间已删除文件未释放被进程占用的文件虽然已删除但空间未释放上周我就遇到一个典型案例某台服务器df显示根目录已用98%但du统计所有子目录总和只有30G。最终用lsof | grep deleted发现是个Java进程持有了60G的已删除日志文件重启应用后空间立即释放。2. 空间清理实战手册2.1 精准定位大文件find命令是空间清理的瑞士军刀。这个组合命令我每天至少用三次find / -type f -size 100M -exec ls -lh {} 2/dev/null | awk {print $5,$9}解释下关键参数-type f只搜索普通文件排除目录、设备文件等-size 100M查找大于100MB的文件2/dev/null屏蔽权限错误提示awk提取文件大小和路径对于时间维度的大文件查找我常用find /var/log -type f -mtime 30 -exec du -h {} | sort -h这个命令找出/var/log下修改时间超过30天的文件并按大小排序。结合业务情况可以安全删除部分历史日志。2.2 日志文件的处理艺术日志文件是最常见的空间杀手。除了用find手动清理更推荐配置logrotate实现自动化管理。这是我的nginx日志轮转配置示例/var/log/nginx/*.log { daily missingok rotate 30 compress delaycompress notifempty create 640 www-data adm sharedscripts postrotate /usr/bin/systemctl reload nginx /dev/null endscript }关键参数说明daily按天轮转rotate 30保留30个历史版本compress启用gzip压缩历史日志delaycompress延迟压缩前一个版本方便排查最新问题经验对于高流量服务建议将日志直接写入到独立分区避免日志爆满影响系统运行。2.3 容器与虚拟机的空间回收Docker的存储驱动可能成为空间黑洞。这个命令组合是我的清理利器docker system prune -af --volumes它会清理所有停止的容器未被任何容器引用的网络悬空的镜像和构建缓存未使用的卷对于Kubernetes环境记得定期清理dead podskubectl get pods --all-namespaces | grep Evicted | awk {print $1,$2} | xargs -L1 kubectl delete pod -n3. 高级诊断技巧3.1 空间不释放之谜当df显示空间已满但du统计不足时通常是有进程持有已删除的文件。诊断步骤查找被删除但仍被占用的文件lsof L1 | grep deleted确认占用进程ps -fp $(lsof L1 | grep deleted | awk {print $2} | sort -u)安全处理方案重启相关进程最彻底清空文件内容适用于日志文件truncate -s 0 /proc/pid/fd/文件描述符3.2 文件系统级别的诊断对于ext4文件系统可以用tune2fs检查保留块tune2fs -l /dev/sda1 | grep -i block count默认会保留5%的空间给root用户对于大容量数据盘可以适当降低tune2fs -m 1 /dev/sda1 # 调整为1%XFS文件系统则需要用xfs_infoxfs_info /dev/sdb14. 预防性维护策略4.1 自动化监控方案我推荐使用PrometheusAlertmanager配置磁盘预警规则groups: - name: disk.rules rules: - alert: DiskSpaceCritical expr: 100 - (node_filesystem_avail_bytes{mountpoint/} * 100 / node_filesystem_size_bytes{mountpoint/}) 90 for: 5m labels: severity: critical annotations: summary: Critical disk space on {{ $labels.instance }} ({{ $labels.mountpoint }}) description: {{ $labels.mountpoint }} on {{ $labels.instance }} has only {{ printf %.2f $value }}% free space4.2 文件系统选择建议根据使用场景选择合适文件系统常规用途ext4稳定可靠海量小文件XFS高性能处理inode容器存储btrfs/zfs支持快照和压缩对于数据库等IO敏感型应用建议单独分配高性能磁盘并采用noatime挂载选项减少元数据写入UUIDxxxx /data ext4 defaults,noatime,nodiratime 0 25. 特殊场景处理5.1 只读文件系统修复当文件系统因错误变为只读时可以尝试检查内核日志dmesg | grep -i error\|read-only强制fsck检查需卸载分区umount /dev/sda1 fsck -y /dev/sda1 mount -a5.2 LVM空间扩展对于LVM管理的磁盘扩展空间流程物理卷扩容pvresize /dev/sdb逻辑卷扩展lvextend -L 20G /dev/vg00/lv_root文件系统扩容resize2fs /dev/vg00/lv_root # ext4 xfs_growfs /mountpoint # XFS在云环境中这些操作可能需要先扩展底层虚拟磁盘。以AWS为例扩展EBS卷后需要执行growpart /dev/xvda 1 resize2fs /dev/xvda1

相关新闻

爱芯派Pro开发板USB无线网卡配置指南

爱芯派Pro开发板USB无线网卡配置指南

2026/7/17 2:51:04

1. 爱芯派 Pro 开发板无线连接方案背景 爱芯派 Pro 开发板作为国产高性能嵌入式开发平台,其标准配置未包含Wi-Fi模块,这在物联网应用开发中会带来诸多不便。通过USB无线网卡扩展网络功能,成为开发者最经济实用的解决方案。 我手头正好有正点…

多模态大模型Agent Smith攻击:原理剖析与防御实战指南

多模态大模型Agent Smith攻击:原理剖析与防御实战指南

2026/7/17 2:51:04

1. 项目概述:Agent Smith攻击的冰山一角最近在安全圈和AI研究社区里,一个名为“Agent Smith”的攻击手法被频繁讨论。乍一听这名字,你可能以为是某个新的恶意软件家族,但实际上,它指向的是一个在多模态大语言模型&…

awesome-llm-apps:122k星标的AI应用开发实战指南

awesome-llm-apps:122k星标的AI应用开发实战指南

2026/7/17 2:41:04

如果你正在学习AI应用开发,可能会遇到这样的困境:看了很多理论教程,但真正要动手实现一个AI Agent或RAG应用时,却不知道从何开始。GitHub上确实有很多开源项目,但质量参差不齐,很多项目要么文档不全&#x…

UVM uvm_config_db 机制详解

UVM uvm_config_db 机制详解

2026/7/17 4:01:07

UVM uvm_config_db 机制详解 一、什么是 uvm_config_db uvm_config_db 是 UVM 提供的一个参数化全局配置数据库,用于在 UVM 组件树的不同层次之间传递配置信息。 核心特性 类型安全 — 通过 SystemVerilog 参数化类实现,写入和读取的类型必须匹配层次化 …

Swin Transformer:高效视觉Transformer架构解析

Swin Transformer:高效视觉Transformer架构解析

2026/7/17 4:01:07

1. Swin Transformer的诞生背景与核心价值计算机视觉领域长期被卷积神经网络(CNN)统治的时代在2020年被Vision Transformer(ViT)打破,但ViT在处理高分辨率图像时面临两大根本性挑战:一是像素级别的自注意力…

Linux权限拒绝问题解析与解决方案

Linux权限拒绝问题解析与解决方案

2026/7/17 4:01:07

1. 权限拒绝问题的本质解析当你在终端执行mv命令时遇到"Permission denied"错误,本质上是因为当前用户对源文件或目标目录缺乏足够的操作权限。这个看似简单的报错背后,实际上涉及Linux/Unix系统完整的权限管理体系。在Linux系统中&#xff0c…

飞行具身智能技术路线图:从物理可信到任务可信的四阶段实践

飞行具身智能技术路线图:从物理可信到任务可信的四阶段实践

2026/7/17 4:01:07

1. 项目概述:当“飞行”遇上“具身智能”,我们到底在规划什么?“飞行 具身智能 路线图”——这六个字不是科幻小说的章节标题,而是我过去18个月在三个不同团队(一家工业无人机公司、一所高校机器人实验室、一个国家级智…

自学嵌入式的第一天(Linux基础)

自学嵌入式的第一天(Linux基础)

2026/7/17 4:01:07

AI的到来冲击着每个行业,我们都要更好的提升自己的能力才不会被替代。一、Linux系统1、VMware与Linux系统关系(1) VMware:虚拟化软件作用:在电脑里虚拟出一整台虚拟计算机,包含虚拟硬件:虚拟CPU…

CSP算法实战:二分查找与差分数组在垦田计划中的应用

CSP算法实战:二分查找与差分数组在垦田计划中的应用

2026/7/17 3:51:06

1. 项目概述:从一道CSP真题看算法竞赛的实战思维最近在带学生准备CCF-CSP认证,又翻出了“垦田计划”这道经典题目。这道题出自第29次认证,编号5017,可以说是检验选手对“二分查找”和“差分数组”这两个核心算法思想理解深度的绝佳…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/16 0:35:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/16 14:29:31

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

2026/7/17 0:00:57

更多请点击: https://intelliparadigm.com 第一章:Cursor终端插件生态避坑指南概览 Cursor 作为基于 VS Code 内核构建的 AI 原生编辑器,其终端插件生态虽活跃,但存在兼容性断层、权限策略突变与调试链路断裂等典型风险。开发者常…

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

2026/7/17 0:00:57

更多请点击: https://codechina.net 第一章:ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 提示词工程已从经验试错迈入变量驱动的科学阶段。实证研究表明,影响…

DeepSeek V4替换Codex底座模型的实践与优化

DeepSeek V4替换Codex底座模型的实践与优化

2026/7/17 0:00:57

1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…