> 패키지 및 시스템 관리 > logrotate

logrotate: 시스템 로그 파일 관리

logrotate는 시스템 로그 파일의 자동 회전(rotation), 압축(compression), 제거(removal) 및 메일 전송을 담당하는 유틸리티입니다. 이 도구는 로그 파일이 너무 커져 디스크 공간을 차지하거나 시스템 성능에 영향을 미치는 것을 방지하여 효율적인 로그 관리를 가능하게 합니다.

개요

logrotate는 설정 파일을 기반으로 로그 파일을 주기적으로 관리합니다. 오래된 로그는 보관 기간에 따라 삭제되거나 압축되어 디스크 공간을 절약하고, 새로운 로그 파일이 생성되어 시스템이 안정적으로 작동하도록 돕습니다. 대부분의 리눅스 시스템에서 cron 작업을 통해 매일 자동으로 실행됩니다.

주요 기능

  • 로그 파일 자동 회전 및 보관
  • 오래된 로그 파일 압축 및 삭제
  • 디스크 공간 효율적 관리
  • 설정 파일 기반의 유연한 규칙 적용
  • 대부분의 리눅스 배포판에 기본 탑재

주요 옵션

logrotate는 주로 설정 파일을 통해 동작하지만, 명령줄 옵션을 사용하여 특정 동작을 제어할 수 있습니다.

실행 제어

파일 지정

생성된 명령어:

명령어를 조합해 보세요.

설명:

`logrotate` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

logrotate는 주로 cron에 의해 자동으로 실행되지만, 수동으로 실행하거나 특정 옵션을 사용하여 테스트할 수 있습니다.

기본 설정 파일로 logrotate 실행

sudo logrotate /etc/logrotate.conf

일반적으로 cron에 의해 실행되지만, 수동으로 기본 설정 파일을 사용하여 logrotate를 실행하는 명령입니다.

디버그 모드로 실행하여 변경 사항 미리보기

sudo logrotate -d /etc/logrotate.conf

실제로 로그 파일을 변경하지 않고, logrotate가 어떤 작업을 수행할지 시뮬레이션하여 보여줍니다. 새로운 설정 적용 전 테스트에 필수적입니다.

강제로 로그 파일 회전

sudo logrotate -f /etc/logrotate.conf

회전 조건(예: 시간, 크기)을 무시하고 즉시 로그 파일을 회전시킵니다. 긴급 상황이나 특정 로그를 즉시 처리해야 할 때 사용합니다.

특정 애플리케이션의 설정 파일로 실행

sudo logrotate -c /etc/logrotate.d/nginx

`/etc/logrotate.d/` 디렉토리 내의 특정 애플리케이션 설정 파일만 사용하여 logrotate를 실행합니다.

팁 & 주의사항

logrotate를 효과적으로 사용하기 위한 팁과 주의할 점입니다.

설정 파일 위치

logrotate의 설정 파일은 주로 두 곳에 위치합니다.

  • /etc/logrotate.conf: 전역 설정 파일로, 모든 로그에 적용되는 기본값과 다른 설정 파일을 포함(include)합니다.
  • /etc/logrotate.d/: 개별 애플리케이션(예: Nginx, Apache, MySQL)의 로그 회전 규칙을 정의하는 파일들이 위치하는 디렉토리입니다.

주요 설정 지시어

logrotate 설정 파일에서 자주 사용되는 지시어들입니다.

  • rotate N: N개의 회전된 로그 파일을 보관합니다.
  • daily/weekly/monthly/yearly: 로그 회전 주기를 지정합니다.
  • compress: 회전된 로그 파일을 압축합니다.
  • delaycompress: 다음 회전 시점에 이전 로그를 압축합니다.
  • notifempty: 로그 파일이 비어 있으면 회전하지 않습니다.
  • missingok: 로그 파일이 없어도 오류를 발생시키지 않습니다.
  • create [mode owner group]: 새로운 로그 파일을 생성합니다.
  • postrotate/endscript: 로그 회전 후 실행할 스크립트를 정의합니다.

설정 변경 시 테스트

새로운 logrotate 설정을 적용하기 전에는 반드시 `-d` (또는 `--debug`) 옵션을 사용하여 테스트해야 합니다. 이는 실제 시스템에 영향을 주지 않고 설정의 유효성을 검증할 수 있는 가장 안전한 방법입니다.

cron과의 연동

logrotate는 일반적으로 `/etc/cron.daily/logrotate` 스크립트를 통해 매일 자동으로 실행됩니다. 이 스크립트는 `/etc/logrotate.conf` 파일을 읽어 모든 설정된 로그 회전 작업을 처리합니다.


동일 카테고리 명령어