Czy Logrotate ukrywa się gdzieś na OSX, czy też istnieje odpowiednik? Nie ma go /usr/sbin
.
Czy Logrotate ukrywa się gdzieś na OSX, czy też istnieje odpowiednik? Nie ma go /usr/sbin
.
Odpowiedzi:
W oparciu o odpowiedź Briana Armstronga, oto coś z nieco większym wyjaśnieniem i poprawką. Obsługuje dziennik utworzony przez postgres na OSX zainstalowanym przez Homebrew. Znajduje się na /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
Spowoduje to obrócenie pliku dziennika, gdy osiągnie rozmiar 2 MB, przechowywanie 2 archiwów (łącznie 6 MB używanego miejsca) i kompresowanie archiwów przez bzip2. Powiadomi proces postgres o ponownym otwarciu plików dziennika po ich obróceniu, co jest konieczne, aby uzyskać nowe wpisy dziennika i faktycznie zwolnić miejsce na dysku bez ponownego uruchamiania komputera.
Należy pamiętać, że rozmiar jest w KB, a nie w bajtach.
Możesz przetestować plik konfiguracyjny (bez wpływu na pliki) za pomocą sudo newsyslog -nvv
.
dokumentacja newsyslog znajduje się tutaj: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . Użyto również: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html
OS X ma kilka sposobów obracania / wygaśnięcia / etc swoich dzienników, w zależności od typu danego dziennika:
logrotate
. Jest konfigurowany przez /etc/newsyslog.conf
i /etc/newsyslog.d/*
(ogólnie, należy dodać pliki, /etc/newsyslog.d/
aby dodać dzienniki do listy zarządzania)./var/log/asl/
. Nie do końca rozumiem ten system, ale ta baza danych jest prawdopodobnie usuwana przez aslmanagera , który jest konfigurowany przez /etc/asl.conf
./Library/Logs/CrashReporter/
), pliki są usuwane przez /etc/periodic/daily/100.clean-logs
. Zasady (które katalogi mają być skanowane i czas pozostawienia plików) są skonfigurowane /etc/defaults/periodic.conf
, ale jeśli chcesz je zastąpić / zmienić, powinieneś utworzyć /etc/periodic.conf.local
i umieścić tam swoje dostosowania.Jeśli to, co chcesz obrócić, nie pasuje do żadnego z tych modeli, możesz dodać własne skrypty do /etc/periodic/daily/
(które będą uruchamiane codziennie o 3:15 rano), /etc/periodic/weekly/
(w każdy sobotni poranek o 3:15 rano) lub /etc/periodic/monthly/
(pierwszy z co miesiąc o 5:30).
newsyslog
działa automatycznie w systemie OSX, używam takiego pliku konfiguracyjnego, /etc/newsyslog.d/rails_apps.conf
aby pliki dziennika deweloperów były przycięte do 5 MB
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log 666 0 5242880 * G
Możesz uzyskać logrotate przez Homebrew. Oto moje notatki z konfigurowania tego.
brew install logrotate
Pliki konfiguracji rotacji dziennika są w /usr/local/etc/logrotate.d/
Edytuj plik konfiguracyjny. Np. Chciałem obrócić niektóre pliki „/var/log/tend_*.log”, które wprowadziłem:
sudo vi /usr/local/etc/logrotate.d/tend.conf
Zawartość:
/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
Jednym ze sposobów na to:
http://blog.cantremember.com/logrotate-mac-os-launch-daemon-with-legacy-macport/