O logrotate está escondido em algum lugar no OSX ou existe um equivalente? Não está dentro /usr/sbin
.
O logrotate está escondido em algum lugar no OSX ou existe um equivalente? Não está dentro /usr/sbin
.
Respostas:
Com base na resposta de Brian Armstrong, aqui está algo com um pouco mais de explicação e correção. Isso lida com o log criado pelo postgres no OSX instalado pelo Homebrew. Localizado em /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
Isso girará o arquivo de log quando atingir 2 MB de tamanho, manterá 2 arquivos (para um total de 6 MB de armazenamento usado) e compactará os arquivos compactados com o bzip2. Ele notificará o processo do postgres para reabrir os arquivos de log uma vez rotacionados, o que é necessário para obter novas entradas de log e liberar realmente o espaço em disco sem reiniciar a máquina.
Importante observar que o tamanho está em KB, não em bytes.
Você pode testar o arquivo de configuração (sem afetar nenhum arquivo) usando sudo newsyslog -nvv
.
A documentação do newsyslog está localizada aqui: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . Também usado: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html
O OS X tem várias maneiras de rotacionar / expirar / etc seus logs, dependendo do tipo de log em questão:
logrotate
. Ele é configurado por /etc/newsyslog.conf
e /etc/newsyslog.d/*
(geralmente, você deve adicionar arquivos /etc/newsyslog.d/
para adicionar logs à sua lista de gerenciamento)./var/log/asl/
. Ainda não entendo completamente esse sistema, mas esse banco de dados parece ter sido removido pelo aslmanager , configurado por /etc/asl.conf
./Library/Logs/CrashReporter/
), os arquivos são eliminados /etc/periodic/daily/100.clean-logs
. Suas políticas (em quais diretórios verificar e por quanto tempo deixar os arquivos) estão configuradas /etc/defaults/periodic.conf
, mas se você deseja substituí-las / alterá-las, deve criar /etc/periodic.conf.local
e colocar suas personalizações lá.Se o que você deseja girar não se encaixa em nenhum desses modelos, você pode adicionar seus próprios scripts /etc/periodic/daily/
(que serão executados todas as manhãs às 3:15 da manhã), /etc/periodic/weekly/
(todas as manhãs de sábado às 3:15 da manhã) ou /etc/periodic/monthly/
(primeiro de todos os meses às 5:30 da manhã).
newsyslog
é executado automaticamente no OSX, eu uso um arquivo de configuração como este /etc/newsyslog.d/rails_apps.conf
para manter meus arquivos de log de desenvolvimento aparados em 5 MB
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log 666 0 5242880 * G
Você pode obter o logrotate via Homebrew. Aqui estão minhas anotações sobre como configurar isso.
brew install logrotate
Os arquivos de configuração de rotação de log estão em /usr/local/etc/logrotate.d/
Edite o arquivo de configuração. Por exemplo, eu queria rotacionar alguns arquivos "/var/log/tend_*.log" que apresentei:
sudo vi /usr/local/etc/logrotate.d/tend.conf
Conteúdo:
/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
Uma maneira de fazer isso:
http://blog.cantremember.com/logrotate-mac-os-launch-daemon-with-legacy-macport/