로그로테이트 (logrotate)
: 지속적으로 쌓이는 로그의 크기가 무한하게 커지는 것을 방지하기 위해
로그를 분할하거나 압축 및 제거하여 관리하는 것
: 하루, 일주일, 한 달, 연 단위 혹은 크기 단위로 로테이션을 수행
: 리눅스에서는 /etc/cron.daily 디렉터리에 서비스가 등록되어 스케줄링을 통해 실행됨
로그로테이트 관련 명령어
- logrotate
logrotate
: 로그 로테이트의 설정 파일을 읽어 로그로테이트를 실행
- 형식
: logrotate [option] <config file>
- 주요 옵션
: -f (--force)
> 강제로 환경설정 파일을 읽어 실행
로그로테이트 관련 파일
- /etc/logrotate.conf
- /etc/logrotate.d
- /var/lib/logrotate.status
/etc/logrotate.conf
: 시스탬과 관련된 로그로테이트 설정 파일
- 형식
<log file> {
[daily, weekly, monthly, yearly <cycle of rotates>]
[rotate <number of rotates>]
[create <permission value> <owner> <own group>]
[minsize, size <1M, 100k>]
[dateext]
[compress]
[include /etc/logrotate.d]
[nomissingok]
[missingok]
}
- 항목별 설명
: daily, weekly, monthly, yearly
> 로그로테이트 주기. 가장 맨위에 작성하면 모든 로그 파일에 적용됨
: rotate <number of rotates>
> 로테이트 횟수
: create <permission value> <owner> <own group>
> 로테이트 실행 후 비어있는 로그 파일 생성
: minsize, size <1M, 100k>
> minsize에 설정한 용량 이상이 되면 로테이트 주기가 되지 않았더라도 로테이트 수행
> size의 경우 daily, weekly 등의 주기와 함께 사용할 수 없음
: dateext
> 로테이트를 통해 생성되는 파일에 날짜를 덧붙혀서 생성 여부
: compress
> 로테이트를 통해 생성되는 파일을 압축하는 여부
: include /etc/logrotate.d
> 해당 로그 로테이트 파일에 설정된 파일에 대해서도 로테이트 적용
: nomissingok
> 로그 파일이 존재하지 않는 경우 에러 메시지 출력. 기본값
: misisngok
> 로그 파일이 존재하지 않아도 에러 메시지를 출력하지 않고 다음 로그 파일로 넘어감
- 예시
```
/var/log/wtmp {
weekly
create 0644 root testg
minisize 1M
rotate 1
}
: wtmp에 대해 일주일에 한 번씩 로테이트를 진행하고 빈 로그 파일을 생성한다
: 파일크기가 1MB가 되면 주기가 오지 않아도 로테이트를 실행
: 로테이트를 통해 생성되는 백로그는 1개만 생성
/var/log/btmp {
rotate 5
mail 2mukee@gmail.com
size 512k
missingok
dateext
postrotate
/usr/lib/node app.js
endscript
}
: btmp의 크기가 512kb일 때 메일을 보내고 app.js를 실행한다
: postrotate ~ endscript에 로테이트 실행 후 실행할 명령어를 작성
```
/etc/logrotate.d
: logrotate 데몬 파일이 위치하는 디렉터리
/var/lib/logrotate.status
: 각 로그 파일 별로 로테이션된 날짜가 기록된 파일
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 시스템 보안 관리 (0) | 2022.10.12 |
---|---|
리눅스 로그 확인 및 기록 (0) | 2022.10.12 |
리눅스 시스템 로그 관리 (0) | 2022.10.11 |
리눅스 프린터 관리 (0) | 2022.10.10 |
리눅스 디스크 용량 확장 (0) | 2022.10.10 |