创建mysql账号,用于连接数据库新生成日志文件。(为了安全,控制账号只有重新加载授权表信息的权限)
# 用管理员账号连接MySQL mysql -uroot -p数据库密码 # 创建用户 CREATE USER 'generallog-logrotate'@'localhost' IDENTIFIED BY 'hbzjt@2024'; # 给用户赋予reload权限 GRANT RELOAD ON *.* TO ' generallog-logrotate '@'localhost'; FLUSH PRIVILEGES;
创建一个新的logrotate配置文件
sudo touch /etc/logrotate.d/mysql-general
使用vi命令编辑上一步创建的文件,增加以下内容
/work/mysql/ecs.log { create 640 mysql mysql rotate 36 monthly missingok notifempty compress postrotate /usr/bin/mysqladmin flush-logs -u generallog-logrotate -phbzjt@2024 -S /var/lib/mysql/mysql.sock endscript }
测试日志切割
# 执行日志切割脚本 /usr/sbin/logrotate -f /etc/logrotate.conf # 查看是否切割成功,若生成了ecs.log-年月日.gz文件说明成功 ll -h