服务器空间告急?三招快速定位+清理方案,紧急应对,三步走,轻松解决服务器空间告急问题

王工凌晨收到磁盘爆满告警,客户官网直接瘫痪!运维组折腾三小时才发现是Nginx日志撑爆了80G空间。这种坑其实三分钟就能搞定——​​看懂服务器空间分布是运维第一课​​!看完这篇,菜鸟也能秒变 *** !(文末有十年运维私藏脚本)


一、基础扫盲:空间都去哪儿了?

​“df命令怎么看?”​​——先看懂这三组关键数据:

​字段​含义 *** 亡红线
​Filesystem​硬盘分区名重点看 ​​/​​ 和 ​​/var​
​Use%​已用空间占比≥90%立即处理
​Mounted on​挂载点路径日志常爆 ​​/var/log​

​基础操作(Linux版)​​:

服务器空间告急?三招快速定位+清理方案,紧急应对,三步走,轻松解决服务器空间告急问题  第1张
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服务器用户看这里​​:

  1. 资源监视器 → 磁盘选项卡
  2. 排序看 ​​活动时间(百分比)​​ >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神器)

  1. 配置自动清理:
    bash复制
    sudo nano /etc/logrotate.conf
  2. 关键参数示例:
    复制
    /var/log/nginx/*.log {daily          # 每天切割rotate 30      # 保留30天compress       # 压缩旧日志missingok      # 日志不存在也不报错}  

✅ 容器/缓存清理

​类型​清理命令效果
Dockerdocker 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小时


十年运维老狗暴论

  1. ​“可视化工具比命令香百倍”​
    ​安装ncdu​​:终端级可视化神器

    bash复制
    sudo apt install ncduncdu /  # 按大小排序目录,空格键标记删除
  2. ​日志空间≥总盘30%必是定时炸弹​
    /var/log单独分区!用LVM动态扩容是保命底线

  3. ​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实测有效。