蘑菇影视官网后台播放时清理空间排查7步:从1到7不绕弯

在蘑菇影视官网后台播放时遇到卡顿、上传失败或磁盘告急,往往是服务器存储或临时文件占满所致。下面给出一套从排查到清理的7步实操流程,按步骤执行,能快速找出问题并释放空间。每一步都包含常用命令和注意点,按需调整到你的系统路径与服务名。
- 先看全局磁盘与挂载情况:定位压力点
- 命令示例:
- df -h(查看分区使用率)
- lsblk(查看磁盘分区)
- du -h --max-depth=1 / | sort -hr | head -n 20(查看根目录下占用大的目录)
- 要点:先确认是单个分区饱和还是整个磁盘接近满载,优先排查后台服务相关分区(例如 /var、/opt、/home、应用存储目录)。
- 查找临时文件与大文件:释放“顽固”空间
- 常见大头:/tmp、/var/tmp、/var/cache、nginx/uwsgi/cache、ffmpeg 转码临时文件、上传的未处理分片。
- 命令示例:
- find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -h
- du -sh /var/log/* | sort -hr
- 操作建议:对确认为旧且可删除的临时文件执行删除;对大型媒体文件确认是否为历史内容或重复文件后再删。删除前可以先移动到备份目录确认后台无影响。
- 清理日志与轮换日志:回收被吃掉的空间
- 检查日志是否无限增长:/var/log、应用自带日志目录、容器日志(/var/lib/docker/containers/…/*.log)。
- 常用操作:
- logrotate 配置检查(/etc/logrotate.d/)
- 对超大的日志可以压缩或截断:> /var/log/huge.log 或 gzip 后移走
- Docker 日志清理:docker ps -q | xargs -r docker inspect --format='{{.LogPath}}' 并清理,或使用 docker system prune
- 注意:截断日志会丢失当前文件内容,必要时先备份再操作。
- 处理数据库与应用缓存:回收被占用的数据库空间
- 常见情况:数据库 binlog、慢查询日志、未清理缓存表或记录。
- 操作建议:
- MySQL:查看磁盘使用 mysql datadir,下 binlog 可用 PURGE BINARY LOGS TO 'logname' 或按日期 PURGE BINARY LOGS BEFORE 'YYYY-MM-DD';
- 对大表执行 OPTIMIZE TABLE 或按批删除历史记录并优化表以回收空间(InnoDB 需要注意表空间回收策略);
- Redis:检查过期键、RDB/AOF 文件大小,必要时执行 BGSAVE 后重写 AOF(BGREWRITEAOF)或调整持久化策略。
- 风险提示:对数据库直接删除或清表前先做备份并在非高峰或维护窗口操作。
- 清理媒体与缓存目录:删除冗余文件与重复内容
- 检查上传临时目录、切片目录、转码输出目录、封面缩略图缓存等。
- 建议:
- 自动清理策略:对临时上传分片和转码缓存设置 TTL,定期删除超过阈值的文件;
- 去重:使用 hash 检查重复文件(例如 md5sum),对重复媒体做引用处理而非多份存储。
- 命令示例:
- find /path/to/uploads -type f -mtime +30 -delete(删除30天未修改的上传文件——先确认业务影响)
- 清理容器与镜像、释放系统占用
- Docker 环境下常见磁盘占用来源:无用镜像、停止容器、未清理的卷、dangling 数据。
- 操作:
- docker system df(查看占用)
- docker system prune -a --volumes(清理未使用的资源;小心数据卷)
- 删除老旧镜像、重建小体积镜像或使用多阶段构建减少镜像大小
- 注意:volume 中可能存有生产数据,操作前确认并备份重要卷。
- 建立长期防御与自动化:避免问题复发
- 立即可做:
- 设置磁盘使用告警(如 Prometheus + Alertmanager / Zabbix /阿里云监控等);
- 写好定期清理脚本(临时文件、转码缓存、日志轮换)并加入 cron;示例:0 3 * * * /usr/local/bin/cleanup_tmp.sh
- 为关键目录配置独立分区或扩容磁盘,避免单一分区满导致全站不可用;
- 优化上传与转码流程:流式转码、边转边播减少临时文件占用。
- 监测项推荐:磁盘使用率、inode 使用率、日志增长速率、转码并发与临时文件生成速率。
快速检查清单(上线前可一览)
- df -h 与 du 快速定位大目录
- 查找 >100MB 文件并逐个确认
- 检查并清理 /tmp、/var/tmp、/var/cache
- 压缩或截断超大日志并优化 logrotate
- 清理 Docker 未使用资源
- 清理或归档历史媒体与转码缓存
- 备份数据库并清理 binlog / 优化表
结语 按上面7步从“看盘—找大文件—清临时与日志—处理数据库—清媒体缓存—清容器—建防护”顺序执行,一般能在短时间内回收大量空间并定位问题根源。操作时保持谨慎:先备份重要数据并在低峰或维护窗口执行有风险的删除/重启操作。长期做好监控与自动清理,能把类似突发的播放空间问题降到最低。需要我把某条命令改成你服务器的路径或写一个可直接跑的清理脚本吗?
