728x90
반응형
로그로테이트 설정 옵션
- daily : 일단위로 실행합니다
- weekly : 주단위로 실행합니다
- monthly : 월단위로 실행합니다
- rotate 5 : 회전 주기를 설정합니다 (ex. 5일까지 보관)
- notifempty : 로그파일의 내용이 없을경우 rotate 하지 않습니다
- missingok : 로그파일이 없을경우 에러메시지를 출력하고 다음으로 실행합니다
- compress : 로그파일을 압축합니다
- delaycompress를 넣어주면 로그 파일을 먼저 보관 처리한 후에 압축을 진행
- sharedscripts : 여러개의 로그파일을 스크립트로 공유하여 실행합니다
- postrotate : 실행 후 스크립트 파일 실행합니다
- endscript : 실행 후 스크립트 파일 실행합니다
- notifempty : 로그파일이 비어있으면 rotate 하지 않는다.
- create 0664 root utmp : 로그파일을 새로 생성할 때, 0644 권한, root 사용자, utmp 그룹으로 생성한다.
ex) postrotate /server/apache2/bin/apachectl graceful endscript |
예제 # vi /test/mysql_query_status /test/mysql.log { create 600 mysql mysql daily rotate 30 missingok dateext postrotate if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping -u [사용자] -p [패스워드] & > /dev/null then /usr/bin/mysqladmin -u [사용자] -p [패스워드] flush-logs fi endscript } |
- 파일의 소유주 mysql생성 및 600 권한으로 설정
- 매일 실행
- 파일 30개까지 유지
- 로그파일이 없을 경우 에러메세지를 출력 후 다음 실행
- 날짜형식으로 분할
- 실행이 끝나고 할 명령어
- ㄴ 파일을 mysql에서 계속 붙잡고 있기 때문에 flush로 꼭 한번 리셋 해줘야 함.
생성 후 /etc/logrotate.d/ 디렉토리 안에 넣으면 되지만 매일 일정한 시간에 실행되지 않는 단점이 있음
일정 시간마다 생성하고 싶다면 crontab에 등록
# crontab -e 0 2 * * * /usr/sbin/logrotate /test/mysql_query_status -f /test/mysql.log -> 매일 새벽 2시 실행 |
728x90
반응형
LIST
'linux > DB' 카테고리의 다른 글
mysql LOCK TABLES 오류 (0) | 2021.06.30 |
---|---|
mysqlbinlog 사용법 (0) | 2021.06.30 |
mysql - thread concurrency / innodb_thread_concurrency 차이 (0) | 2021.06.08 |
mysql 실시간 쿼리 확인 (0) | 2021.06.04 |
mysql 락 테이블 확인 (0) | 2021.06.04 |