logrotate 가 OSX 어딘가에 숨겨져 있습니까? 에 없습니다 /usr/sbin
.
logrotate 가 OSX 어딘가에 숨겨져 있습니까? 에 없습니다 /usr/sbin
.
답변:
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
OS X에는 문제의 로그 유형에 따라 로그를 회전 / 만료하는 등 여러 가지 방법이 있습니다.
logrotate
. /etc/newsyslog.conf
및에 의해 구성됩니다 /etc/newsyslog.d/*
(일반적으로 파일 /etc/newsyslog.d/
을 추가하여 관리 목록에 로그를 추가 해야 함 )./var/log/asl/
있습니다. 이 시스템을 아직 완전히 이해하지는 못했지만이 데이터베이스는 aslmanager 에 의해 제거 된 것으로 보입니다 /etc/asl.conf
./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).
newsyslog
OSX에서 자동으로 실행됩니다. /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
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