后台上传 500MB 的视频,进度到一半报 No space left on device,df -h 显示根分区使用率 100%,/tmp 也满了,站点同时打不开。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

df -h /
du -sh /var/backups/* | sort -h | tail -5
find /var/log -name '*.gz' -mtime +30 -delete

上传临时文件先写 /tmp,完成后才移动到目标目录,临时空间和网站共用同一分区。旧备份和日志没有清理策略,把磁盘占满。这一点先确认清楚,后面就不用反复试。

「磁盘空间不足」这类改动最怕改一半,回滚脚本先准备好,再动生产。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

具体做法是,先清掉三个月前的备份和轮转日志,腾出空间;上传临时目录改到独立分区,避免和站点抢空间;设一个磁盘使用率 85% 的告警,提前处理。

改完照着核一遍,磁盘使用率降到 70% 以下,500MB 文件能完整上传。

作者 9823189