익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
리눅스 logrotate
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
;로그 파일을 주기적으로 압축하고 이름을 바꾸어 관리한다. * 리눅스에서만 지원 * 경로 : /usr/sbin/logrotate * 설정 파일 경로 ** 베이스 설정 파일: /etc/logrotate.conf ** 로그별 설정 파일 디렉터리: /etc/logrotate.d/ == 사용법 == 로그별 설정 파일 디렉터리(/etc/logrotate.d/)에 설정 파일을 넣어 두기만 하면 알아서 동작한다. 내부적으로 cron 기반이므로 재기동 등의 특별한 절차가 필요하지 않다. 아래와 같은 명령어도 있으나, 기본적으론 설정 파일을 만들어 넣는 식으로 이용하는 것만으로 충분하다. 베이스 설정 파일에 기본적인 설정(ex. datetext)들이 있으므로 새로운 설정 파일엔 경로 등 일부 간단한 설정만 넣어줘도 된다. 설정 파일을 만드는 것이 핵심이므로 아래 문법보단 [[리눅스 logrotate.conf]] 문서를 참고하자. == 동작 과정 == * '''기존 로그 파일 이름 변경''' ** 예: <code>access_log</code> → <code>access_log.1</code> 또는 <code>access_log-2025-06-02</code> * '''필요 시 압축 처리''' ** 예: <code>access_log.1</code> → <code>access_log.1.gz</code> * '''새로운 빈 로그 파일 생성''' ** <code>create</code> 옵션이 있으면 <code>access_log</code> 파일을 '''다시 생성'''하고 권한 부여 * '''서비스에 로그 파일 교체를 알림''' ** 보통 <code>postrotate</code>에서 <code>systemctl reload</code> 같은 명령으로 알림 == 문법 == <pre> logrotate [옵션] <설정파일> </pre> === 옵션 === * -d : 디버거 모드 * -f, --force : 새로운 목록이 추가되었거나 오래된 로그 파일을 수동으로 삭제할 경우 강제로 실행한다. * -s, --state [statefile] : 지정한 정책 파일(statefile)으로 logrotate를 실행한다. * --usage : 사용법을 출력한다. === 설정파일 옵션 === * yearly, monthly, weekly, daily 주기 옵션으로 로테이트를 실행할때 로그를 어떤 주기로 로테이트를 할지 선택 * rotate [숫자] 로그파일의 개수가 숫자이상이면 가장 오래된 로그파일을 삭제합니다. * create [권한] [유저] [그룹] 로테이트 될때 생성되는 로그파일 권한 및 소유자 지정 * notifempty 로그 내용이 없으면 로테이트를 실행하지 않음 이와 반대로 * ifempty는 로그 내용이 없어도 로테이트를 진행 * compress 로테이트로 생성되는 로그파일 gzip으로 압축생성 * nocompress 로테이트로 생성되는 로그파일을 압축하지 않고 생성 * missingok 로그파일을 발견하지 못해도 에러처리 하지 않음 * dateext 로테이트 파일의 이름에 날짜가 들어가도록 생성 * size [숫자 K,M,G] 로그 파일이 크기가 설정보다 커지면 로테이트 실행 * maxage [숫자] 파일이 지정일 이상되면 삭제 * postrotate 실행후 스크립트 파일 실행 * endscript 스크립트를 실행하는 옵션 다음에 들어가야하는 옵션 == 예제 == httpd 기본 설정 내용 /var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } 아파치는 그 동작 구성 상 한번 구동이 되면 로그 파일 핸들을, 첫 구동 시 만든 것으로 계속 사용한다. 그래서 기존에 쓰고 있던 로그 파일을 없애고 새롭게 로그파일을 생성한 경우 reload를 해줘야 정상적으로 새로운 파일에 로그를 기록한다.<ref>위 동작 과정을 보면 알 수 있다. 만약 기존 로그 파일을 복제한 후, 내용을 비우는 방식이라면 reload가 필요 없겠지만 그렇게 하면 복제를 위한 I/O가 크기 때문에 mv로 파일명만 바꾸고 새로운 빈 파일을 만드는 식으로 동작하기 때문이다.</ref> == 같이 보기 == * [[리눅스 logrotate.conf]] == 참고 문헌 == * [https://book.naver.com/bookdb/book_detail.naver?bid=6413239 유닉스 리눅스 명령어 사전, 2010. 11. 30., 우종경, 박종오] == 각주 == [[분류:리눅스]][[분류:리눅스 명령어]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록