-
- Notifications
You must be signed in to change notification settings - Fork 5.6k
migrate_v5_CN_log rotate
winlin edited this page Jul 31, 2022 · 1 revision
HOME > CN > Log Rotate
Note: 如果觉得Github的Wiki访问太慢,可以访问 Gitee 镜像。
Log Rotate就是日志切割,服务器日志越来越大,如何压缩日志,或者丢弃古老的日志?SRS讲日志管理交给外部系统,提供了接口可以切割日志。
- 首先,将日志文件挪走,譬如:
mv objs/srs.log /tmp/srs.`date +%s`.log - 然后,发送信号给SRS,SRS重新打开日志文件,譬如
killall -s SIGUSR1,SRS会关闭之前的fd,重新打开日志文件并写入。 - 对挪动后的日志文件处理,可以压缩存储,传输,或者删除。
推荐使用程序logrotate管理日志文件,支持压缩和删除过期的文件。
- 安装logrotate:
sudo yum install -y logrotate - 配置logrotate管理SRS的日志文件:
cat << END > /etc/logrotate.d/srs /usr/local/srs/objs/srs.log { daily dateext compress rotate 7 size 1024M sharedscripts postrotate kill -USR1 `cat /usr/local/srs/objs/srs.pid` endscript } END 备注:可以手动执行命令触发日志切割
logrotate -f /etc/logrotate.d/srs
logrotate还有一种方式是copytruncate, 墙裂不推荐这种方式因为会丢日志,但是它适用于不支持SIGUSR1信号的SRS2。
当然SRS3也是可以用这种方式,如果能接受丢日志的话;但是强烈建议不要用这种方式,仅仅作为SRS2的workaround方案。
配置如下,感谢wnpllrzodiac提交的PR#1561:
cat << END > /etc/logrotate.d/srs /usr/local/srs/objs/srs.log { daily dateext compress rotate 7 size 1024M copytruncate } END Winlin 2016.12
Welcome to SRS wiki!
Please select your language:
Please select your language:
Please select your language:
Please select your language:
Please select your language: