OSX에서 logrotate와 동일


52

logrotate 가 OSX 어딘가에 숨겨져 있습니까? 에 없습니다 /usr/sbin.


newsyslog가 있음을 알았지 만 완전히 동일하지 않으며 루트가 필요합니다.
스티브 베넷

logrotate가 이식 될 수 있는지 궁금합니다.
Tom O'Connor

/ etc / periodic을 확인하면 로그 회전이 기본적으로 쉘 스크립트 세트로 구현된다고 생각합니다. 또한 파일 크기에 따라 newsyslog (/etc/newsyslog.d 및 매뉴얼 페이지)를 참조하십시오.
malcolmpdx

팁 주셔서 감사합니다-실제로 / etc / periodic에 스크립트가 있습니다
Steve Bennett

@SteveBennett 사람들은 "비평"배지를 어떻게받을 수 있습니까? 어떤 사람들은 배지와 명성을 위해서만 여기에 있습니다.
Mark Fisher

답변:


23

Brian Armstrong의 답변을 바탕으로 약간의 설명과 수정 사항이 있습니다. Homebrew가 설치 한 OSX에서 postgres가 생성 한 로그를 처리합니다. 위치 /etc/newsyslog.d/postgresql.conf:

# logfilename                           [owner:group]      mode count size(KB)  when  flags [/pid_file]                            [sig_num]
/usr/local/var/postgres/postgresql.log  :                  600  2     2048      *     J     /usr/local/var/postgres/postmaster.pid 

로그 파일의 크기가 2MB에 도달하면 2 개의 아카이브 (총 6MB의 스토리지 사용)를 유지하고 bzip2로 압축 파일을 압축합니다. postgres 프로세스에 일단 회전 된 로그 파일을 다시 열도록 지시합니다. 이는 새로운 로그 항목을 가져오고 실제로 머신을 다시 시작하지 않고 디스크 공간을 확보하는 데 필요합니다.

크기는 바이트가 아닌 KB 단위입니다.

을 사용하여 구성 파일을 테스트 할 수 있습니다 (파일에 영향을주지 않고) sudo newsyslog -nvv.

newsyslog 설명서는 http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5)에 있습니다. 또한 사용 : http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html


21

OS X에는 문제의 로그 유형에 따라 로그를 회전 / 만료하는 등 여러 가지 방법이 있습니다.

  1. 일반 로그 파일 (예 : 지속적으로 추가되는 텍스트 파일)의 경우 newsyslog 는 크기 나 시간을 기준으로 로테이션 할 수 있지만 옵션은 많지 않습니다 logrotate. /etc/newsyslog.conf및에 의해 구성됩니다 /etc/newsyslog.d/*(일반적으로 파일 /etc/newsyslog.d/을 추가하여 관리 목록에 로그를 추가 해야 함 ).
  2. OS X의 syslog 시스템은 주로이 일반 텍스트 형식에서 데이터베이스 형식으로 마이그레이션하고 /var/log/asl/있습니다. 이 시스템을 아직 완전히 이해하지는 못했지만이 데이터베이스는 aslmanager 에 의해 제거 된 것으로 보입니다 /etc/asl.conf.
  3. 개별 로그 "항목"이 별도의 파일 (주로 /Library/Logs/CrashReporter/) 로 추가 된 디렉토리의 경우 파일이 제거됩니다 /etc/periodic/daily/100.clean-logs. 정책 (검사 할 디렉토리 및 파일을 보관하는 기간)이에 구성되어 /etc/defaults/periodic.conf있지만 재정의 / 변경하려는 경우 /etc/periodic.conf.local사용자 지정 항목을 만들어 여기에 배치해야합니다.

회전하려는 항목이 이러한 모델에 맞지 않으면 /etc/periodic/daily/(매일 오전 3시 15 분에 실행), /etc/periodic/weekly/(매주 토요일 오전 3시 15 분에) 또는 /etc/periodic/monthly/(첫 번째 매월 5:30 am).


11

newsyslogOSX에서 자동으로 실행됩니다. /etc/newsyslog.d/rails_apps.conf개발 로그 파일을 5MB로 정리하기 위해 이와 같은 구성 파일을 사용합니다.

# logfilename                           [owner:group]   mode count size     when  flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log                     666  0     5242880  *     G

크기는 K이며, 비어있는 경우에도 owner : group에 ":"이 필요합니다
Bryan Ash

9

Homebrew를 통해 로그 로테이션을 얻을 수 있습니다. 다음은이 설정에 대한 참고 사항입니다.

설치

brew install logrotate

로그 회전 구성

로그 회전 구성 파일이 /usr/local/etc/logrotate.d/

구성 파일을 편집하십시오. 예를 들어 내가 소개 한 일부 "/var/log/tend_*.log"파일을 회전하고 싶었습니다.

sudo vi /usr/local/etc/logrotate.d/tend.conf

내용: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }

그것을 테스트

sudo logrotate -v -f /usr/local/etc/logrotate.d

서비스 시작

sudo brew services start logrotate

서비스 재시작

sudo brew services restart logrotate


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.