AWS顶尖云 AWS顶尖云 立即咨询

华为云代理返现 华为云清理磁盘空间技巧

华为云国际 / 2026-04-17 16:00:36

你有没有经历过这种窒息时刻?

凌晨两点,手机疯狂震动——华为云监控告警:系统盘使用率98.7%。你一个激灵坐起,抓过笔记本连上SSH,敲出df -h,眼睁睁看着/dev/xvda1那一行红得发烫,像刚被泼了辣椒油。再一查du -sh /* 2>/dev/null | sort -hr | head -10,发现/var/log占了12G,/var/cache/yum默默蹲着8G,还有个叫nginx-access.log.20231201.gz的“老寿星”蜷在角落,压着3.2G……你手悬在rm -rf键上方,冷汗顺着后颈往下淌——这玩意儿删错了,网站直接变404坟场。

别慌。今天这篇,不讲虚的“清空回收站”式安慰剂,专治华为云ECS磁盘告急的真·实操病。全是我在给56家客户救火时,用键盘敲出来的血泪经验,附赠三句防翻车口诀:“日志先轮转,别急删;快照看时间,别乱删;大文件先ls -lSh,再定夺。”

一、先别删!搞清敌人是谁(诊断篇)

盲目删除=给服务器做开颅手术不打麻药。第一步,必须精准制导:

  1. 全局扫描df -h 看哪个分区红了;
  2. 深度透视du -sh /* 2>/dev/null | sort -hr | head -15(加2>/dev/null屏蔽权限报错);
  3. 钻进目录:比如发现/var最大,就cd /var && du -sh * 2>/dev/null | sort -hr | head -10
  4. 揪出巨无霸find /var -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr | head -10——这行命令能把你藏得最深的100MB+文件全拎出来示众。

⚠️ 注意:find命令慎用根目录/,建议限定范围如/var/home,避免扫到/proc这类虚拟文件系统导致卡死。

二、日志——最常背锅,也最该被温柔对待

系统日志、Nginx/Apache访问日志、Java应用GC日志……它们像勤恳的记账员,但账本堆成山就成灾难。直接rm -f *.log?小心服务因日志句柄未释放而罢工。

正确姿势:

  • Logrotate是亲儿子:检查/etc/logrotate.d/下配置。比如Nginx日志,确认有类似:
/var/log/nginx/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 0644 www-data www-data
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}

重点看rotate 30(保留30份)和compress(自动gzip)。若没启用?sudo logrotate -f /etc/logrotate.conf强制跑一次,立刻压缩旧日志,体积直降70%。

  • 手动急救:对已堆积的未压缩日志,别删!gzip /var/log/syslog.1 /var/log/nginx/access.log.1,再rm掉原始大文件——压缩后体积常不足1/10。

三、缓存与临时文件——沉默的硬盘杀手

/var/cache里躺着yum/apt的安装包、Docker镜像层、Python pip缓存……它们不是垃圾,但长期不清理就是定时炸弹。

  • yum用户sudo yum clean all && sudo yum autoremove(CentOS/RHEL),清理后可省2-5G;
  • apt用户sudo apt-get clean && sudo apt-get autoremove --purge(Ubuntu/Debian);
  • Docker用户docker system prune -a -f(删未用镜像、容器、网络)+ docker builder prune -f(清构建缓存);
  • Python项目:进项目目录find . -name "__pycache__" -type d -exec rm -rf {} +,再pip cache info && pip cache purge

四、快照——云上最贵的“舍不得”

华为云代理返现 很多人把华为云快照当免费U盘,自动快照策略开着,手动快照随手点……结果发现云硬盘容量没满,快照占用空间却吃掉你账户配额,导致新快照失败或计费飙升。

行动指南:

  1. 登录华为云ECS控制台 → 存储 → 云硬盘 → 点击对应硬盘 → “快照”页签;
  2. 按“创建时间”倒序,优先删超过30天、非关键业务、无命名说明的快照;
  3. 关闭不必要的自动快照策略(尤其测试环境);
  4. 记住:快照按实际占用容量计费,不是按云硬盘大小!一个100GB硬盘,若只写入20GB数据,快照最多占20GB+增量。

五、系统级释放——那些看不见的“内存幽灵”

有时候df显示满了,du却找不到大文件?可能是被删除但进程仍占用的“幽灵文件”。常见于日志轮转后,Nginx/Java进程还在往已删文件句柄写数据。

查杀步骤:

  1. lsof +L1 列出所有已删除但仍被占用的文件;
  2. deleted状态且SIZE巨大的项,例如:nginx 1234 root 1w REG 253,1 2893451264 123456 /var/log/nginx/access.log (deleted)
  3. 重启对应服务:sudo systemctl restart nginx,空间立即释放。

六、终极防护:让磁盘不再告急

救火不如防火。三招建立长效机制:

  1. 监控钉钉告警:华为云云监控 → 创建阈值告警 → 触发条件设为“磁盘使用率 > 85%” → 推送至钉钉群,比半夜惊醒强十倍;
  2. 每周自动清理脚本(保存为/root/clean-disk.sh):
#!/bin/bash
# 华为云ECS磁盘健康守护脚本
echo "【$(date)】开始清理..."
# 日志压缩
find /var/log -name "*.log" -mtime +7 -size +10M -exec gzip {} \;
# 清理yum缓存
yum clean all >/dev/null 2>&1
# 清理docker
docker system prune -f >/dev/null 2>&1
# 检查幽灵文件并记录
lsof +L1 > /tmp/deleted_files_$(date +%F).log 2>/dev/null
echo "清理完成!"

加定时任务:crontab -e 添加0 3 * * 0 /root/clean-disk.sh > /dev/null 2>&1(每周日凌晨3点执行)。

  1. 扩容前必做:若长期接近满载,别硬扛!华为云支持在线扩容系统盘(需关机)或挂载新数据盘。记住:扩容是手段,不是习惯。先优化,再扩容。

最后送你一句华为云老兵的真心话:磁盘空间不是用来填满的,是用来呼吸的。留出15%余量,既是给系统喘息的缓冲带,也是给你自己留出从容排查的黄金时间。下次再看到红色告警,别怕——你已经握住了那把精准、安全、带着温度的清理钥匙。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系