rotatelogs 사용법

링크 : https://httpd.apache.org/docs/2.2/ko/programs/rotatelogs.html

  • Apache와 함께 자동 설치
  • /usr/local/apache/bin/rotatelogs

사용법

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

실행 옵션

옵션
내용
-lGMT 대신 지역시간을 사용한다. (BST or DST)
logfile로그파일의 경로, ‘%’ 가 있으면 strftime(3)의 형식 문자열로 처리, 없으면,초단위 시간 .nnnnnnnnnn을 자동으로 붙인다.
rotationtime로그파일을 순환할 초단위 시간. 24시간=86400
offsetUTC에서 분단위 시간차이. 생략하면 0으로 가정하여 UTC를 사용한다.  UTC -5 => -300
filesizeM시간이 아닌 크기를 지정, 최대 파일크기 뒤에 M을 붙인다. rotationtime과 offset 대신 이 파라미터를 사용한다.
 

  • 파이프를 이용해서 아파치의 access, error 로그를 아파치가 직접 쓰지 않고 rotatelogs 가 수행한다.
  • Apache 는 서버가 시작할때 파이프로 연결된 rotatelogs 를 실행하고, 죽으면 다시 시작시킨다.
  • 파이프로 연결된 로그 프로세스(rotatelogs) 는 Apache httpd 부모 프로세스에서 실행하기 때문에 보통 root로 실행되고 해당 프로세스의 PPID 가 Apache httpd 부모 프로세스의 PID 이다.

사용의 예

ErrorLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/error-%Y-%m-%d.log 86400 +540" TransferLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/app/access-%Y-%m-%d.log 86400 +540"

  • 864000 = 24 시간에 대한 rotationtime(초단위)
  • +540 은 UTC에서의 시간차이(UTC+9 => 9 * 60= 540)

지시어

지시어
내용
%w1-자리 요일수(주의 첫번째 날은 일요일)
%m2-자리 달
%M2-자리 분
%I(대문자 i)2-자리 시간(12시간 시계)
%H “2-자리 시간(24시간 시계)
%y2-자리 연도
%d2-자리 일
%W2-자리 주일수(주의 첫번째 날은 월요일)
%U2-자리 주일수(주의 첫번째 날은 일요일)
%S2-자리 초
%j3-자리 날짜수
%Y4-자리 연도
%b(지역화된) 3-문자 달 이름
%a(지역화된) 3-문자 요일 이름
%p(지역화된) 12시간 시계의 am/pm
%x(지역화된) 날짜
%c(지역화된) 날짜와 시간
%X(지역화된) 시간
%B(지역화된) 완전한 달 이름
%A(지역화된) 완전한 요일 이름
%%문자그대로 `%’
%Z시간대 이름