公司服务器上的日志文件突然占满了磁盘,页面打不开,视频转码任务卡住,排查一圈才发现是运维日志膨胀到了几十GB。这种情况不少见,尤其在用FFmpeg、OBS这类视频工具做自动处理时,日志积累特别快。
\n用日志轮转控制体积
\nLinux系统自带的logrotate就是干这个的。比如你的视频转码脚本每天生成一个log文件,可以配置它按天切割,保留最近7天的记录,旧的自动删掉。
\n编辑配置文件:
/etc/logrotate.d/video-processing内容写成:\n/var/log/video-encoder/*.log {\n daily\n missingok\n rotate 7\n compress\n delaycompress\n notifempty\n create 644 www-data www-data\n}\n这样每天的日志会被打包成.gz文件,超过7天的自动清除,既留了排查依据,又不会撑爆硬盘。
\n实时监控+自动清理脚本
\n有时候日志增长太快,等一天太迟。可以写个简单的监控脚本,每小时检查一次日志大小。
\n#!/bin/bash\nLOG_FILE="/var/log/ffmpeg/process.log"\nMAX_SIZE=1073741824 # 1GB\n\nif [ -f "$LOG_FILE" ]; then\n SIZE=$(stat -c %s "$LOG_FILE")\n if [ $SIZE -gt $MAX_SIZE ]; then\n echo "[INFO] 日志过大,清空处理" > $LOG_FILE\n fi\nfi\n把这段脚本加入cron任务,每小时跑一次,能有效防止日志失控。
\n从源头减少输出
\n很多视频工具默认输出大量调试信息。比如FFmpeg加了-v verbose参数,每一帧都在打日志。实际使用中,改成-v error或-v warning就够了。
\n原来命令:
ffmpeg -i input.mp4 -v verbose -c:v libx264 output.mp4可以改成:ffmpeg -i input.mp4 -v error -c:v libx264 output.mp4输出信息立马少一大半。\n用管道重定向临时日志
\n有些自动化任务不需要长期保留日志,可以直接丢给/dev/null,或者只保留最后几百行。
\n比如定时任务写成:
ffmpeg -i test.mov -c copy new.mp4 >> /tmp/ffmpeg-last.log 2>&1\ntail -500 /tmp/ffmpeg-last.log > /tmp/ffmpeg-last.log.tmp && mv /tmp/ffmpeg-last.log.tmp /tmp/ffmpeg-last.log这样只留最近500行,老内容自动刷掉。\n运维日志不是越全越好,关键是要可控。结合轮转、监控和源头控制,再大的日志也能管住。”,"seo_title":"运维日志过大清理方法 - 数码指南","seo_description":"运维日志过大导致磁盘满?教你用logrotate、脚本监控和FFmpeg配置优化,高效清理和预防大日志问题,特别适用于视频处理场景。","keywords":"运维日志过大,日志清理方法,logrotate配置,FFmpeg日志控制,服务器日志管理,视频工具日志"}