[Linux] 利用logrotate对MySQL日志进行轮转
日志轮转特别适用于具有固定文件名的日志文件,比如MySQL的出错日志、常规查询日志、慢查询日志等。Linux系统有一个非常好用的根据logratate可以实现自动轮转,本文介绍它的原理和用法。
默认情况下,logratate部署为每天运行的cron job,你可以在目录/etc/cron.daily里找到名为logratate的配置文件。那么它是在每天的上面时候运行的呢?打开文件/etc/crontab就知道了,下面是我机器上的情况:
选项含义compress压缩日志文件的所有非当前版本copy复制当前的日志文件,忽略create参数
copytruncate复制当前的日志文件,并置空当前文件daily每天轮日志文件idateext轮换的日志后缀为-YYYYMMDD格式delaycompress压缩除了当前和最近之外的所有其他版本missingok如果日志不存在,不会报错notifempty如果日志为空,则不轮换rotate n在轮换方案中包含n个版本的日志size=logsize如果日志文件大于logsize才轮换
我们只要根据自己的需要,修改相应配置即可,下面是一个例子:1)创建MySQL root密码文件
vi /root/.my.cnf
/usr/sbin/logrotate -f /etc/logrotate.d/mysql-log-rotate