
logrotate
1. logrotate의 개요
- 로그 파일은 계속해서 덧붙여지면서 쌓이는 형태라 파일의 크기도 계속 커지게됨
- 이를 방지하기 위해서 로그 파일을 여러 개로 분할하는 프로그램이 logrotate 임
- logrotate는 로그 파일의 자동 로테이션 기능, 압축 기능, 제거 등을 지원
- 각각의 로그 파일은 하루, 일주일, 한달, 연 단위로 로테이션을 할 수 있고 파일의 크기를 지정하여 로테이션을 실행할 수 있음
- 시스템과 관련된 기본적인 로그 설정은 /etc/logrotate.conf에서 제어하고, 응용 프로그램은 /etc/logrotate.d 디렉터리 내에 위치하여 로그 파일을 관리하고 있음
- 명령행에서 logrotate를 직접 사용이 가능하지만, 현재 리눅스에서는 /etc/cron.daily 디렉터리에 등록되어서 cron에 의해 스케줄링 되어 실행되고 있음
- 관련 정보는 ‘man logrotate’ 명령으로 확인 가능
logrotate [option] config_file
옵션
| 옵션 | 설명 |
| -f --force |
강제로 환경 설정 파일을 읽어들여서 실행 |
사용 예
logrotate -f /etc/logrotate.conf
2. /etc/logrotate.conf의 주요 설정
1. 주요 항목
- weekly
- 로그 파일을 일주일마다 로테이트(rotate)함. 가장 맨 위에 등록된 경우 특별히 명시하지 않은 로그 파일들은 이 파일에 적용을 받음. 기간과 관련된 옵션으로는 daily, weekly, monthly, yearly를 사용 가능
- rotate 4
- 최대 4번까지 rotate를 하는 설정으로 기본 Logfile, logfile.1, logfile.2, logfile.3, logfile.4 형태로 생성됨
- create
- 로테이트를 한 후에 비어있는 로그 파일을 생성하도록 설정하는 항목
- dateext
- 로테이션으로 생성되는 로그 파일에 해당 날짜를 덧붙여서 생성하는 항목. 예를 들면 maillog라면 maillog-20230513 형태로 생성됨
- compress
- 로테이트한 후에 생성된 로그 파일에 대해 압축할 때 사용하는 항목
- include /etc/logrotate.d
- /etc/logrotate.d 디렉터리 안에 설정된 파일에 대해서도 로테이트를 적용하는 설정
- nomissingok
- 로그 파일이 존재하지 않는 경우에 에러 메시지를 출력. 기본 값으로 설정되어 있음
- missingok
- 로그 파일이 존재하지 않는 경우에 에러 메시지를 출력하지 않고 다음 파일로 이동
로그 파일명을 명기한 후에 {}로 묶어서 관련 내용을 설정하면 별도로 운영 가능. /var/log/wtmp는 한 달마다 로테이트 하지만, 파일 크기가 1MB가 되면 그 이전이라도 로테이트를 실행함. 파일 생성 시에 허가권 값은 0644, 소유자는 root, 소유 그룹을 utmp로 설정. 또한 로테이션으로 생성되는 백로그(Backlog) 파일은 1개만 생성 가능
/var/log/wtmp { monthly create 0644 root utmp minsize 1M rotate 1 }
2. 설정 예
- /var/log/httpd/access.log 파일에 대한 로테이션 설정을 파일의 크기가 100k 일때 설정한 내용. size 옵션은 기간을 지정하는 daily, weekly, monthly, yearly와 함께 사용할 수 없음. mail 항목은 로그 파일이 없을 때 지정하는 주소로 메일을 보내도록 설정할 수 있음. postrotate~endscript는 로그 파일이 로테이트된 후에 실행될 명령어를 작성할 때 사용
/var/log/httpd/access.log {
rotate 5
mail posein@gmail.com
size 100k
missingok
dateext
postrotate
/usr/bin/killall -HUP httpd
endscript
}'Linux' 카테고리의 다른 글
| [Linux] 시스템 보안 관리 - sysctl (0) | 2025.10.27 |
|---|---|
| [Linux] 시스템 보안 관리 - ssh(Secure Shell) (1) | 2025.10.16 |
| [Linux] 로그 관련 파일 (0) | 2025.10.07 |
| [Linux] 로그 관련 명령어 - last / lastlog / lastb / dmesg / logger (0) | 2025.10.02 |
| [Linux] 로그 관련 파일 - /etc/rsyslog.conf (0) | 2025.09.29 |