Linux의 로그 회전

Linux의 로그 회전

디렉토리에서 ls명령을 실행할 때마다 /var/log로그 파일(예: ) messages과 회전된 버전(예: )을 찾을 수 있습니다 messages.1.gz.

예를 들어 유틸리티를 사용하지 않는 경우에도 이러한 파일을 자동으로 회전하려면 어떻게 해야 합니까 logrotate? 파일 회전 기준은 무엇입니까(예: 로그 파일 크기가 "X"MB이거나 "N"일마다 회전되어야 함)? 로그 회전을 제어(활성화/비활성화)하는 방법은 무엇입니까?

노트:나는 매달 1일에 실행될 bash 스크립트를 작성했습니다. 스크립트는 로그 파일을 압축하고 압축된 파일을 원격 서버에 복사한 다음 원본 로그 파일을 비웁니다(따라서 다음에 실행될 때 업데이트된 로그를 사용할 수 있도록). 따라서 로그 파일이 순환되는 것을 원하지 않습니다.

답변1

여기에 파일이 있는지 확인하세요./etc/logrotate.d

그렇다면 회전을 원하지 않는 콘텐츠와 관련된 콘텐츠를 삭제하세요. 그러나 삭제하는 항목에 주의하고 logrotate를 사용하여 회전된 모든 파일에 대해 파일 정리 방법이 있는지 확인하십시오. 그렇지 않으면 어느 날 깨어나서 파일 시스템에 디스크 공간이 부족하다는 것을 이해하지 못할 위험이 있습니다.

고쳐 쓰다

디렉터리의 단일 파일 내에 여러 파일을 지정할 수 있습니다 logrotate.d. 예를 들면 file입니다 . 이는 언급한 로그의 대상 위치 syslog이기도 합니다 .messages

/etc/logrotate.d/syslog

/var/log/messages 
/var/log/secure 
/var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

업데이트 #2

다음 명령을 실행하여 syslog가 logrotate 대신 로그 파일을 순환하는지 확인하십시오.

grep -rni "message" /etc/cron.*/*

Debian 스타일 시스템에서 syslog 회전은 일반적으로 에 있는 cron 일일 스크립트로 제어할 수 있습니다 /etc/cron.daily/sysklogd. 내 grep 명령은 이것이 귀하의 경우에 해당하는지 확인하는 데 도움이 됩니다(RHEL을 사용하는 경우에도 마찬가지입니다).

자세한 내용은 여기에서 확인할 수 있습니다.http://www.ducea.com/2006/06/06/rotating-linux-log-files-part-1-syslog/

또한 확인하십시오:grep -rni "message" /etc/rsyslog.d/*

관련 정보