리눅스에서 서버를 운영하시다 보면 로그를 보고 서버의 상태 혹은 장애를 대비합니다 그래서 대부분의 모든로그는 남기도록 설정하는데 이러한 로그들은 시간이 점점 지나면서 엄청난 크기로 커지게 된다.
크기로 커지기 전에 로그을 관리하도록 설정하는 기능이 logrotate 입니다
Logrotate 실행순서
Logrotate 파일 구조
데몬 프로그램 : /usr/sbin/logrotate
Logrotate 데몬 : /etc/logrotate.conf
Logrotate 프로세스 : /etc/logrotate.d/
Logrotate 작업내역 : /etc/cron.daily/logrotate
/etc/logrotate.conf 설정하기
1. 로그 회전주기
# rotate log files weekly
weekly
로그 회전을 원하시는 주기를 설정입니다
yearly : 매년
monthly : 매월
weekly : 매주
daily : 매일
2. 로그파일 개수
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 5
정리할 로그의 개수를 지정하는 부분입니다 로그 회전주기에 따라 진행됩니다
3. 새로운 로그파일 생성여부
# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 5 # create new (empty) log files after rotating old ones create
로그파일을 정리한 후 로그파일을 생성여부입니다
create : 로그파일 생성
empty : 로그파일 생성 안함
4. 파일명 날짜 부여
# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 5 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext
Logrotate가 실행한뒤 로그파일에 날짜를 부여합니다
dateext : 로그 파일명의 날짜 부여
5. 로그파일 압축여부
# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 5 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed compress
로그파일 압축여부 입니다 - (압축하여 로그파일의 크기를 조절할수 있습니다)
compress : 로그파일 압축
6. 개별 로그정리 프로세스(데몬) 경로
# rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 5 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d
디렉토리를 지정하여 Logrotate를 할수 있습니다
include [경로] : Logrotate 프로세스(데몬) 지정
/etc/logrotate.d 설정하기
apache 로그를 이용한 /etc/logrotate.d 파일 밑에 설정을 해보도록 하겠습니다
1. apache 로그 Logrotate(로테이트) 설정하기
[root@server ~]# cat /etc/logrotate.d/apache /server/apache2/logs/*log { daily rotate 5 notifempty missingok compress sharedscripts postrotate /server/apache2/bin/apachectl graceful endscript }
/etc/logrotate.d/apache 상세설명
daily : 일단위로 실행합니다
rotate 5 : 회전 주기를 설정합니다
notifempty : 로그파일의 내용이 없을경우 rotate 하지 않습니다
missingok : 로그파일이 없을경우 에러메시지를 출력하고 다음으로 실행합니다
compress : 로그파일을 압축합니다
sharedscripts : 여러개의 로그파일을 스크립트로 공유하여 실행합니다
postrotate : 실행 후 스크립트 파일 실행합니다
/server/apache2/bin/apachectl graceful
endscript : 실행 후 스크립트 파일 실행합니다
2. Logrotate(로테이트) 실행
[root@server ~]# /usr/sbin/logrotate -f /etc/logrotate.d/apache
3. Logrotate(로테이트) 디버그 모드
[root@server ~]# /usr/sbin/logrotate -d /etc/logrotate.d/apache
3. Logrotate(로테이트) 실행과정 화면의 표시
[root@server ~]# /usr/sbin/logrotate -v /etc/logrotate.d/apache
'OS > Linux 일반' 카테고리의 다른 글
디렉토리와 모든 하위 디렉토리의 용량 (0) | 2020.03.11 |
---|---|
사용하는 포트 프로세스 확인 (0) | 2020.03.11 |