Linux

[Linux] logrotate 설치하여, 주기적으로 로그를 삭제하기

IT-PAPA 2023. 10. 11. 06:29
728x90
반응형

logrotate는 Linux 시스템에서 로그 파일을 자동으로 관리하고 압축, 백업, 삭제, 로테이션 등을 수행하는 유틸리티입니다. 로그 파일은 시스템 리소스를 차지하고 디스크 공간을 낭비할 수 있으므로 logrotate를 사용하여 로그 파일을 효과적으로 관리할 수 있습니다.

logrotate 설치

대부분의 Linux 배포판에는 logrotate가 기본적으로 포함되어 있습니다. 하지만 필요한 경우, 패키지 관리자를 통해 설치할 수 있습니다. 아래는 몇 가지 배포판에서의 설치 명령어 예제입니다.

# Debian/Ubuntu
sudo apt-get install logrotate

# Red Hat/CentOS
sudo yum install logrotate

# Fedora
sudo dnf install logrotate

logrotate의 설정 파일은 일반적으로 /etc/logrotate.conf와 /etc/logrotate.d/ 디렉토리 내에 있습니다. /etc/logrotate.conf 파일은 기본 설정을 정의하고, /etc/logrotate.d/ 디렉토리 내의 파일은 특정 로그 파일에 대한 추가 설정을 포함합니다.

기본 설정 파일 편집

# logrotate.conf

# 로그 파일이 얼마나 오래 보관되어야 하는지 설정합니다.
# 예: 30일 이후에 로그 파일이 삭제됩니다.
rotate 30

# 로그 파일이 어떻게 압축되어야 하는지 설정합니다.
# compress 옵션을 사용하여 압축하고, 압축된 로그 파일에 .gz 확장자가 붙습니다.
compress

# 압축된 로그 파일이 얼마나 오래 보관되어야 하는지 설정합니다.
# 예: 90일 이후에 압축된 로그 파일이 삭제됩니다.
# 만약 원본 로그 파일과 함께 삭제하려면 notifempty 옵션을 사용합니다.
rotate 90

# 로그 파일의 소유자와 그룹을 지정할 수 있습니다.
create 0644 root root

 

로그 파일별 설정 파일 작성

# /etc/logrotate.d/apache2

/var/log/apache2/*.log {
    # 로그 파일이 없어도 경고 없이 처리
    missingok
    
    # 로그 파일을 매일 로테이션합니다.
    daily

    # 로그 파일이 최대 14개까지 유지됩니다.
    rotate 14

    # 로그 파일을 압축합니다.
    compress

    # 원본 로그 파일과 함께 삭제합니다.
    notifempty

    # 30일 이후의 로그 파일은 삭제
    maxage 30
    
    # 로그 파일을 복사하면서 원본 파일 비우기
    copytruncate
    
    # 압축된 로그 파일에 날짜 확장자 추가
    dateext
    
    # 로그 파일의 소유자와 그룹을 지정할 수 있습니다.
    create 0644 root root
}

 

logrotate 테스트

이 명령어는 실제로 로그 파일을 회전하지 않고, 어떻게 동작할지 미리 보여줍니다. -d 옵션을 사용하여 디버그 모드로 실행합니다.

sudo logrotate -d /etc/logrotate.conf

 

logrotate 자동 실행 설정

logrotate는 주로 cron 작업을 통해 주기적으로 실행됩니다. cron 작업을 설정하여 logrotate가 로그 파일을 주기적으로 회전하도록 만들 수 있습니다. cron 작업은 /etc/cron.daily/logrotate 또는 /etc/cron.weekly/logrotate와 같이 설정됩니다.

logrotate를 수동으로 실행하려면 다음 명령어를 사용할 수 있습니다.

sudo logrotate -f /etc/logrotate.conf

 

crontab 을 이용하여, 원하는 주기로 변경하기

# 매주 수요일 오전 2시에 logrotate 실행
0 2 * * 3 /usr/sbin/logrotate /etc/logrotate.conf
728x90
반응형
LIST