logrotate의 기능, /etc/logrotate.conf 및 /etc/logrotate.d에서의 설정 작동 방식, 그리고 규칙을 안전하게 테스트하는 방법을 설명합니다.
logrotate는 로그 파일이 디스크를 채우지 않도록 회전, 압축, 삭제하는 Linux 유틸리티입니다. 대개 systemd 타이머나 cron 작업에 의해 하루에 한 번 실행되며, /etc/logrotate.conf와 /etc/logrotate.d/의 패키지별 규칙을 읽어 들입니다.
규칙에는 하나 이상의 로그 파일과 함께 daily 또는 weekly(주기), rotate 7(보관할 이전 파일 개수), compress(이전 파일 gzip 압축), missingok(파일이 없어도 오류 없음), notifempty(빈 로그 건너뛰기), 그리고 postrotate ... endscript(회전 후 실행할 명령어, 예: 로그 다시 열기) 등의 지시어가 포함됩니다.
일부 프로그램은 계속 열려 있는 동일한 파일에 쓰기를 수행합니다. copytruncate는 파일을 이동하는 대신 로그를 복사한 다음 원본을 잘라내어(truncate) 프로그램이 파일 핸들을 유지하도록 합니다. 다만 복사 중에 작성된 몇 줄의 로그는 손실될 수 있습니다.
'logrotate -d /etc/logrotate.conf'는 디버그 모드로 실행되어 수행될 작업만 출력합니다. '-f'는 회전 주기가 되지 않았더라도 강제로 회전을 수행합니다.
/etc/logrotate.d/myapp을 생성하여 로그 경로와 weekly, rotate 4, compress, missingok, notifempty 등의 지시어를 작성합니다.sudo logrotate -d /etc/logrotate.d/myappsudo logrotate -f /etc/logrotate.d/myapp최종 업데이트: 2026-10-08
journalctl로 로그를 읽고, 저널이 차지하는 용량을 확인하며 --vacuum 옵션으로 안전하게 줄이는 방법입니다.
단일 파일 시스템에 유지되는 옵션을 사용하여 du 및 대화형 ncdu로 Linux 디스크를 채우는 요소를 찾는 방법입니다.
cron이 예약된 작업을 실행하는 방식, 다섯 개의 crontab 시간 필드, 시스템 cron 파일의 위치 및 systemd 타이머와의 비교.