发布网友 发布时间:2022-05-01 22:56
共2个回答
懂视网 时间:2022-05-02 03:17
1)、安装 crond 服务 (如果未安装 yum install logrotate crontabs)
rpm -qa | grep crontabs
yum install crontabs
chkconfig crond --list #如果未设置为自动重启这执行如下命令修改
chkconfig crond on
service crond restart
2)、创建MySQL root密码文件
vi /root/.my.cnf
[mysqladmin]
user = sysadmin
password = mysql
chmod 600 /root/.my.cnf
3)、把mysql-log-rotate拷贝至/etc/logrotate.d目录下,修改其内容为:
# mysql_error.log 错误日志文件
# mysql_general.log 通用查询日志文件
# mysql_slow.log 慢查询日志文件
/app/mysql/mysql3306/logs/mysql_error.log
/app/mysql/mysql3306/logs/mysql_general.log
/app/mysql/mysql3306/logs/mysql_slow.log {
# create 600 mysql mysql
notifempty
daily
rotate 5
copytruncate
nocreate
missingok
compress
dateext
postrotate
# just if mysqld is really running
if test -x /app/mysql/mysql3306/bin/mysqladmin &&
/app/mysql/mysql3306/bin/mysqladmin ping &>/dev/null
then
/app/mysql/mysql3306/bin/mysqladmin flush-logs
fi
endscript
}
4)执行以下命令以测试是否配置正确
/usr/sbin/logrotate -f /etc/logrotate.d/mysql-log-rotate
注:需要查看已备份压缩文件这执行 gunzip file_name.gz 即可
5)定时执行 (每天凌晨执行)
# vim /etc/crontab
59 23 * * * root /usr/sbin/logrotate -f /etc/logrotate.d/mysql-log-rotate
本文出自 “独孤九剑” 博客,请务必保留此出处http://130030.blog.51cto.com/120030/1922805
使用logrotate对MySQL指定日志文件执行按天轮转备份
标签:mysql
热心网友 时间:2022-05-02 00:25
您好,很高兴为您解答。
1.copytruncate,拷贝后截断。
把当前log拷贝后截断。可以理解为把内容拷贝走作为备份,然后清空当前文件。但是这有一个问题就是拷贝和截断之间会有时间差,存在丢数据的可能。
2.给rsyslog发信号。重新打开log文件。在/etc/logrotate.d/zw_log里添加
postrotate表示在日志轮转后执行
sharedscripts表示zw_notice.log、zw_info.log两个日志共享这个脚本,就是说他俩轮转完成后只执行一次这个脚本,默认情况下是每个脚本轮转完成就执行一次。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~