MySQL general 로그를 logrotate 로 관리하기
1. general 로그 설정
[root@sysdocu ~]# vi /etc/my.cnf
[mysqld] general_log_file = /usr/local/mysql/data/general.log general_log = 1 |
2. logrotate 설정
[root@sysdocu ~]# vi /etc/logrotate.d/mysql
/usr/local/mysql/data/general.log { daily rotate 1 // 사용중인것 말고 날짜로 된것 하나만 보관하도록 한다 dateext missingok sharedscripts create 660 mysql mysql postrotate /usr/local/mysql/bin/mysqladmin -uroot -p'00000000' flush-logs endscript } |
[root@sysdocu ~]# chmod 640 /etc/logrotate.d/mysql
강제 실행 테스트
[root@sysdocu ~]# logrotate -f /etc/logrotate.d/mysql
3. 로그 압축 백업 설정
용량이 큰 general 로그를 압축하여 보관하도록 한다.
[root@sysdocu ~]# vi /etc/crontab
59 23 * * * root sh /root/general_log.sh
[root@sysdocu ~]# vi /root/general_log.sh
!#/bin/bash
find /data2/general_log/ -ctime +200 -print -exec rm -f {} \; date=`date +%Y%m%d` tar cvzf /data2/general_log/general_log_${date}.tar.gz /data1/general.log-${date}
exit 0 |
[root@sysdocu ~]# chmod 700 /root/general_log.sh
'리눅스 > MySQL' 카테고리의 다른 글
mongodump 사용시 조건을 주어 백업하기 (0) | 2019.06.18 |
---|---|
mysqldump 사용시 조건을 주어 백업하기 (0) | 2019.06.18 |
MySQL 5.7 소스 설치하기 (0) | 2019.05.13 |
MariaDB Galera Cluster 구성 (MySQL, MariaDB 지원) (0) | 2018.12.05 |
CentOS7 에서 MySQL 8.0 소스 설치 (0) | 2018.11.14 |