Linux LogRotate 사용하기
03 Jun 2020 | programming OS로그 로테이션이란?
로그의 비대화를 막기 위한 방법이다. 서비스를 운영할 때 로그가 많아지는데 이것을 계속
이어서 저장하게 하는것은 시스템의 용량을 많이 잡아먹는다. 따라서 로그를 나눠서 저장하고
일정 시간이 지나면 삭제하는 방법이 필요하다. 이런 작업을 로테이션이라고 한다.
logrotate
는 리눅스 시스템에는 기본적으로 설치되어 있다.
man logroate 확인
DESCRIPTION
logrotate is designed to ease administration of systems
that generate large numbers of log files. It allows auto‐
matic rotation, compression, removal, and mailing of log
files. Each log file may be handled daily, weekly,
monthly, or when it grows too large.
Normally, logrotate is run as a daily cron job. It will
not modify a log more than once in one day unless the cri‐
terion for that log is based on the log's size and logro‐
tate is being run more than once each day, or unless the
-f or --force option is used.
Any number of config files may be given on the command
line. Later config files may override the options given in
earlier files, so the order in which the logrotate config
files are listed is important. Normally, a single config
file which includes any other config files which are
needed should be used. See below for more information on
how to use the include directive to accomplish this. If a
directory is given on the command line, every file in that
directory is used as a config file.
If no command line arguments are given, logrotate will
print version and copyright information, along with a
short usage summary. If any errors occur while rotating
logs, logrotate will exit with non-zero status.
로그 로테이션 설정하기
/etc/lograte.d
해당 경로에 {projectName} 이름의 파일을 만들고, 설정파일을 넣는다. 설정 파일의 예제는 구글링링이나, man logrotate를 치면 잘 나와있다.
설정파일 Example
/var/log/messages { rotate 5 weekly postrotate /usr/bin/killall -HUP syslogd endscript }
로그 로테이션 실행
$ /usr/sbin/logrotate -f /etc/logrotate.d/{projectName}