Linux df/du 命令实战:5分钟定位磁盘空间占用超80%的根因

发布时间:2026/9/27 19:50:53

Linux df/du 命令实战:5分钟定位磁盘空间占用超80%的根因
Linux磁盘空间排查实战5分钟精准定位空间占用元凶1. 磁盘空间告警的紧急排查流程当服务器突然弹出磁盘空间不足的警告时运维人员需要像急诊医生一样快速定位问题根源。以下是经过实战验证的排查决策树全局扫描使用df -h查看各分区使用率锁定问题分区目录级分析进入目标分区后执行du -sh * | sort -hr找出最大目录深度钻取对可疑目录执行du -ah | sort -rh | head -10列出具体大文件特殊文件检查用ls -lhS查看当前目录文件大小排序典型排查场景示例# 步骤1确认根分区使用率已达95% $ df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 47G 1.2G 95% / # 步骤2发现/var占用异常 $ cd / sudo du -sh * | sort -hr 24G var 11G usr 5.2G home ... # 步骤3定位到日志文件过大 $ cd /var sudo du -ah | sort -rh | head -5 18G /var/log/nginx/access.log 1.2G /var/log/syslog 800M /var/log/kern.log ...2. 高阶排查工具与技巧2.1 可视化分析工具对于复杂的空间占用问题可以借助可视化工具生成直观报告# 安装ncdu工具 $ sudo apt install ncdu -y # 扫描指定目录 $ ncdu /varncdu会生成交互式界面用ASCII条形图显示各目录占比支持键盘导航深入查看。相比传统命令它能实时显示扫描进度允许删除文件而不退出工具按大小或名称排序显示隐藏目录占比2.2 特殊文件类型处理某些文件类型需要特殊处理方式文件类型特征处理命令日志文件持续增长truncate -s 0 filename核心转储以core开头gdb -c corefile分析后删除孤立inodedu与df结果不一致lsof L1查找被删除的大文件2.3 自动化监控脚本将以下脚本加入crontab实现每日空间检查#!/bin/bash THRESHOLD80 CURRENT$(df / --outputpcent | tail -1 | tr -d % ) if [ $CURRENT -ge $THRESHOLD ]; then ALERT_MSG[WARNING] Disk usage on / is ${CURRENT}% echo $ALERT_MSG # 生成详细报告 REPORT_FILE/tmp/disk_usage_$(date %Y%m%d).log echo Top 10 directories: $REPORT_FILE du -h --max-depth1 / 2/dev/null | sort -hr | head -11 $REPORT_FILE # 这里可以添加邮件发送逻辑 else echo [OK] Disk usage: ${CURRENT}% fi3. 典型场景解决方案3.1 日志文件暴增Nginx/Apache日志快速增长是常见问题解决方案包括日志轮转配置以Nginx为例# /etc/logrotate.d/nginx /var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate invoke-rc.d nginx rotate /dev/null 21 endscript }实时日志监控# 监控日志文件增长 $ watch -n 60 du -sh /var/log/nginx/access.log # 按时间范围切割日志 $ sudo logrotate --force /etc/logrotate.d/nginx3.2 数据库空间异常PostgreSQL数据库可能出现数据目录膨胀-- 查询数据库大小 SELECT d.datname AS 数据库名, pg_size_pretty(pg_database_size(d.datname)) AS 大小 FROM pg_database d ORDER BY pg_database_size(d.datname) DESC; -- 查询表大小含索引 SELECT table_schema || . || table_name AS 表名, pg_size_pretty(pg_total_relation_size(||table_schema||.||table_name||)) AS 总大小 FROM information_schema.tables ORDER BY pg_total_relation_size(||table_schema||.||table_name||) DESC;对于表膨胀问题建议定期执行VACUUM FULL需停机窗口或使用pg_repack工具在线重组。4. 防御性运维策略4.1 空间预分配机制通过LVM实现弹性扩容# 查看卷组剩余空间 $ vgs # 扩展逻辑卷 $ lvextend -L 10G /dev/mapper/vg-root # 调整文件系统 $ resize2fs /dev/mapper/vg-root4.2 关键目录配额设置对用户目录设置磁盘配额# 1. 编辑/etc/fstab添加usrquota参数 /dev/sda1 /home ext4 defaults,usrquota 0 2 # 2. 重新挂载并初始化配额 $ mount -o remount /home $ quotacheck -cum /home $ quotaon /home # 3. 为用户设置配额 $ edquota -u username4.3 自动化清理策略使用systemd定时器实现智能清理# /etc/systemd/system/disk-cleanup.service [Unit] DescriptionWeekly disk cleanup [Service] Typeoneshot ExecStart/usr/local/bin/cleanup_script.sh # /etc/systemd/system/disk-cleanup.timer [Unit] DescriptionRun cleanup weekly [Timer] OnCalendarweekly Persistenttrue [Install] WantedBytimers.target

相关新闻

Alpine Xfce 中文支持实战:3步解决字体乱码,配置 Fcitx5 输入法

Alpine Xfce 中文支持实战:3步解决字体乱码,配置 Fcitx5 输入法

2026/9/27 19:49:41

Alpine Xfce 中文支持实战:3步解决字体乱码,配置 Fcitx5 输入法对于追求极致轻量化的Linux用户来说,Alpine Linux搭配Xfce桌面环境是一个理想的选择。但在中文环境下使用,往往会遇到字体显示异常和输入法缺失两大痛点。本文将提供…

Kali Linux 2024.3 桌面快捷方式创建:3种方法对比与 .desktop 文件详解

Kali Linux 2024.3 桌面快捷方式创建:3种方法对比与 .desktop 文件详解

2026/8/30 13:47:05

Kali Linux 2024.3 桌面快捷方式创建:3种方法对比与 .desktop 文件详解在Kali Linux的日常使用中,桌面快捷方式(启动器)是提升效率的重要工具。本文将深入解析Linux桌面环境下的启动器机制,并对比三种主流创建方法&…

Studio Library:Maya动画师必备的3分钟快速安装与完整使用指南

Studio Library:Maya动画师必备的3分钟快速安装与完整使用指南

2026/8/30 4:36:46

Studio Library:Maya动画师必备的3分钟快速安装与完整使用指南 【免费下载链接】studiolibrary Studio Library 项目地址: https://gitcode.com/gh_mirrors/st/studiolibrary 你是否为Maya动画制作中重复调整相同姿态而烦恼?每次制作新项目都要重…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/26 19:14:12

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/27 1:30:37

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/27 1:30:35

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/27 1:30:34

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/26 16:36:51

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/26 13:57:22

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…