0
点赞
收藏
分享

微信扫一扫

MySQL log rotate配置

目录

  • ​​功能介绍​​
  • ​​配置文件​​
  • ​​copy、copytruncate与create的差异​​
  • ​​create​​
  • ​​配置示例​​
  • ​​MySQL slow log​​
  • ​​MySQL error log​​
  • ​​常用命令​​
  • ​​参考链接​​

功能介绍

Linux logrotate被设计用来对各服务产生的大日志文件进行归档处理,默认情况下logrotate每天基于cron job触发。

  • 以下是logrotate功能特点
    - 支持自动日志归档
    - 支持对归档的日志进行压缩
    - 支持对归档操作发送邮件提醒
    - 支持基于每天、每周、每月、每年等维度进行归档策略
    - 支持日志达到指定大小的归档策略
    - 支持在日志归档期间进行额外的操作(如重启某服务)
    - 支持归档过程中的常见错误处理机制(如文件不存在、文件为空等)

配置文件

## 参数说明
weekly 每周进行切换
rotate 保留12份归档日志文件
olddir 指定归档的目录
missingok 如不存在该文件也不报错且进入下一轮
minsize 指定日志多大时进行切换,单位字节,可与weekly、monthly一起使用
dateext 对归档的日志文件增加日期后缀,默认格式'%Y%m%d'
copytruncate
notifempty 如果日志文件为空,不会进行日志归档切换
compress 对归档的日志进行压缩,默认用gzip压缩,文件名以'.gz结尾'

copy、copytruncate与create的差异

copy

  • 原样拷贝一份相同的日志文件后,不清空原日志文件

copytruncate

  • 原样拷贝一份相同的日志文件后,清空原日志文件,该方式不同意将文件先move后新建一个同名文件的方式,主要是针对一些程序在文件的inode改变后无法正常写入日志的情况,对于大日志文件,通过这种方式进行日志的truncate操作期间,会有短暂的处理时间,在这端时间内产生的日志将不会输出到原本的日志文件,所以会有少量数据丢失情况。

create

配置示例

MySQL slow log

/opt/mysql/data/mysql-slow.log
{
weekly
rotate 12
olddir /opt/mysql/log_archive/slow
missingok
dateext
minsize 104857600
copytruncate
notifempty
compress
}

MySQL error log

/opt/mysql/data/mysql-error.log
{
monthly
rotate 12
olddir /opt/mysql/log_archive/error
missingok
dateext
copytruncate
notifempty
compress
}

常用命令

## 安装
yum install -y logrotate crontabs

## 默认配置目录
ls /etc/logrotate.d/

## 手动触发日志切换
logrotate -vf /etc/logrotate.d/mysql-error

参考链接

  • ​​https://linux.die.net/man/8/logrotate​​



举报

相关推荐

0 条评论