Spread the love

일반적으로 로그파일은 모든 문제 해결 함에서 매우 중요한 부분이지만 시간이 지남에 따라 부피가 증가합니다. 이 경우 공간을 확보하기 위해 로그파일 정리를 수동으로 수행해야하는데 이는 지루한 관리 작업입니다. 이 문제를 해결하기 위해 Linux에서 logrotate 프로그램을 구성하여 로그 파일의 회전, 압축, 삭제 및 메일 링을 자동으로 수행 할 수 있습니다.

각 로그 파일을 매일, 매주, 매월 또는 너무 커질 때 처리 할 수 ​​있도록 logrotate 프로그램을 구성 할 수 있습니다.

logrotate 작동 방식

기본적으로 /etc/cron.dailycron 태스크 에서와 같이 logrotate 명령을 하루에 한 번 실행하면 특정 시간 이상 또는 로그 파일 크기가 회전하는 전략을 설정하는 데 도움이됩니다.

명령: /usr/sbin/logrotate

구성 파일 : /etc/logrotate.conf

이것은 logrotate의 기본 구성 파일입니다. logrotate는 /etc/logrotate.d/특정 서비스의 구성 에도 저장됩니다. /etc/logrotate.conf특정 서비스 로깅 구성을 읽으려면 해당 라인이 다음 에 포함되어 있는지 확인하십시오 .

include  /etc/logrotate.d`

로그 기록 : /var/lib/logrotate.status

중요한 logrotate 옵션 :

compress             --> 로그파일 압축여부
daily,weekly,monthly --> 로그파일분할 시간지정.
delaycompress        --> 최근파일외 전부압축
errors "emailid"     --> 에러발생시 메일발솔여부 지정.
missingok            --> 로그파일분실시 에러로 인정안함.
notifempty           --> 로그파일이 제로인경우 분할하지않음.
olddir "dir"         --> 분할된 로그파일을 지정한 디렉토리에 저장함.
postrotate           --> 로그파일분할후 실행할 script지정.
prerotate            --> 로그파일분할전 실행할 script지정.
rotate 'n'           --> 저장할 로그파일개수 지정
sharedscripts        --> 한세트의 로그파일에 한번만 로그분할작업 실행.
size='logsize'       --> 로그파일이 지정된 logsize보다 클떄만 분할( 예: 
                          100K,4M)

실전

/etc/logrotate.d 폴더에 nginx라는 파일을 만들어 줍니다.

#cd /etc/logrotate.d
#nano nginx

/home/wwwlogs/*.log  { 
su root root
size 2M
rotate 5
missingok
compress
delaycompress
#olddir /home/wwwlogs/old
create 640 www root
notifempty
sharedscripts
postrotate
    [ -e /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
endscript
}

위 내용은 로그파일이 2m보다 클떄 분할하되 5개파일만 저장하며 최근파일은 압축하지 않는다는 뜻입니다.

보통 logrotate는 하루에 한번씩 실행하도록 지정되여있습니다. 실행가능여부를 확인하기위해 하기명령으로 강제 실행할수 있습니다.

/usr/sbin/logrotate  -f /etc/logrotate.conf

로그파일폴더에 들어가 분할되였는지 확인하여 주시면 됩니다.

-rw-r----- 1 www  root  643896 Jul  4 14:44 www.wp-vps.com.log
-rw-r----- 1 www  root 2138246 Jul  2 06:21 www.wp-vps.com.log.1
-rw-r----- 1 www  root  184139 Jun 24 06:22 www.wp-vps.com.log.2.gz
-rw-r----- 1 www  root  149924 Jun 13 06:19 www.wp-vps.com.log.3.gz
-rw-r----- 1 www  root  152973 Jun  7 06:19 www.wp-vps.com.log.4.gz
-rw-r----- 1 www  root  159617 May 29 06:02 www.wp-vps.com.log.5.gz

자동으로 실행시 위와같이 파일이 분할됩니다.


구독신청
Notify of
guest

3 Comments
oldest
newest most voted
Inline Feedbacks
View all comments
davidoff
davidoff
3 years ago

/home/wwwlogs/*.log {
su root root #debian10 에서 permision문제 일으킬떄 root root
size 2M
rotate 5
missingok
compress
delaycompress
#olddir /home/wwwlogs/old
create 640 www root
notifempty
sharedscripts
postrotate
  [ -e /usr/local/nginx/logs/nginx.pid ] && kill -USR1

cat /usr/local/nginx/logs/nginx.pid
endscript
}

trackback
1 year ago

[…] logrotate이용하여 nginx 로그파일 분할관리하기 […]

trackback
1 year ago

[…] logrotate이용하여 nginx 로그파일 분할관리하기 […]

3
0
Would love your thoughts, please comment.x
()
x