服务器空间告急?三招快速定位+清理方案,紧急应对,三步走,轻松解决服务器空间告急问题
王工凌晨收到磁盘爆满告警,客户官网直接瘫痪!运维组折腾三小时才发现是Nginx日志撑爆了80G空间。这种坑其实三分钟就能搞定——看懂服务器空间分布是运维第一课!看完这篇,菜鸟也能秒变 *** !(文末有十年运维私藏脚本)
一、基础扫盲:空间都去哪儿了?
“df命令怎么看?”——先看懂这三组关键数据:
字段 | 含义 | *** 亡红线 |
---|---|---|
Filesystem | 硬盘分区名 | 重点看 / 和 /var |
Use% | 已用空间占比 | ≥90%立即处理 |
Mounted on | 挂载点路径 | 日志常爆 /var/log |
基础操作(Linux版):

bash复制df -h # -h参数自动换算GB/MB
输出示例:
复制Filesystem Size Used Avail Use% Mounted on/dev/sda1 98G 84G 14G 85% //dev/sdb1 1.8T 1.7T 23G 99% /var/log # ← 危险区域!
Window服务器用户看这里:
- 资源监视器 → 磁盘选项卡
- 排序看 活动时间(百分比) >30%的磁盘
二、深度定位:揪出空间大胃王
“85%空间被谁吃了?”——三级排查法精准打击:
▶ Level1:快速锁定问题分区
bash复制# 按占用率倒序查看df -h | sort -k5 -rn
重点盯梢:
- /var:日志坟场
- /tmp:临时文件黑洞
- /home:用户私藏仓库
▶ Level2:扫描目录大小(危险操作!)
bash复制# 查看根目录下各文件夹大小sudo du -sh /* | sort -h# 安全写法(避免误删系统文件):sudo du -sh /var/* /tmp/* /home/* 2>/dev/null | sort -h
经典案例:某公司发现 /var/lib/docker 占70G——陈年容器未清理
▶ Level3:文件级核武器
bash复制# 定位前10大文件find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 10
实测救场:通过此命令发现MySQL未清理的20GB binlog文件
三、清理实战:避坑三板斧
“乱删文件会不会崩?”——这些命令安全又高效:
✅ 日志清理(Logrotate神器)
- 配置自动清理:
bash复制
sudo nano /etc/logrotate.conf
- 关键参数示例:
复制
/var/log/nginx/*.log {daily # 每天切割rotate 30 # 保留30天compress # 压缩旧日志missingok # 日志不存在也不报错}
✅ 容器/缓存清理
类型 | 清理命令 | 效果 |
---|---|---|
Docker | docker system prune -a -f | 释放GB级空间 |
APT缓存 | sudo apt clean | 清/var/cache |
YUM缓存 | yum clean all | 清/var/cache |
✅ 定时任务防复发
bash复制# 每日检查脚本echo "df -h | grep -E '9[0-9]%'" | sudo tee /etc/cron.daily/disk_checksudo chmod +x /etc/cron.daily/disk_check
⚠️ 四、血泪教训:这些操作毁一生
“rm -rf一时爽...”——避雷清单务必牢记:
作 *** 命令 | 等效操作 | 正确替代方案 |
---|---|---|
rm -rf /usr/bin | 删光系统程序 | 用完整路径:rm -rf ./test |
find / -name "*" -delete | 全盘清空 | 限定目录:find /tmp -name "*.log" |
> access.log | 清空但进程仍写 → 空间泄漏 | echo "" > access.log |
某程序员误删/lib64,系统直接变砖——重装损失8小时
十年运维老狗暴论
“可视化工具比命令香百倍”
安装ncdu:终端级可视化神器bash复制
sudo apt install ncduncdu / # 按大小排序目录,空格键标记删除
日志空间≥总盘30%必是定时炸弹
/var/log单独分区!用LVM动态扩容是保命底线2025年还手动清理?落伍!
Prometheus+Alertmanager自动监控:yaml复制
# prometheus规则- alert: DiskSpaceCriticalexpr: 100 - (node_filesystem_avail_bytes{fstype=~"ext4|xfs"} * 100 / node_filesystem_size_bytes) > 90
独家数据:配置监控后,服务器宕机率下降87%(摘自2024 SRE报告)
附一键清理脚本(谨慎使用):
bash复制#!/bin/bash# 安全清理临时文件rm -rf /tmp/*find /var/log/ -name "*.gz" -mtime +30 -deletedocker system prune -fapt clean
(使用前务必测试!误删后果自负)
案例来源:某电商平台真实故障复盘,技术细节经脱敏处理。清理命令在Ubuntu 22.04/CentOS 7实测有效。