Equivalente de logrotate no OSX

50

O logrotate está escondido em algum lugar do OSX, ou existe um equivalente? Não está em /usr/sbin .

    
por Steve Bennett 24.01.2012 / 01:37

5 respostas

20

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 registro quando ele atingir 2 MB, manterá 2 arquivos (para um total de 6 MB de armazenamento usado) e compactará os arquivos em bzip2. Ele notificará o processo postgres para reabrir os arquivos de log, uma vez rotacionados, o que é necessário para obter novas entradas de log e liberar o espaço em disco sem reiniciar a máquina.

Importante notar 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: link . Também usado: link

    
por 16.11.2014 / 19:37
20

O OS X tem várias maneiras de girar / expirar / etc seus registros, dependendo do tipo de registro em questão:

  1. Para arquivos de log regulares (ou seja, arquivos de texto que são anexados continuamente), newsyslog pode rotacioná-los com base no tamanho ou no tempo, embora não pareça ter tantas opções quanto o logrotate. É configurado por /etc/newsyslog.conf e /etc/newsyslog.d/* (geralmente, você deve adicionar arquivos ao /etc/newsyslog.d/ para adicionar logs à sua lista de gerenciamento).
  2. O sistema syslog do OS X está migrando deste formato de texto simples para o formato de banco de dados, principalmente em / var / log / asl /. Eu não entendo completamente este sistema ainda, mas este banco de dados parece ser removido por aslmanager , que é configurado por /etc/asl.conf.
  3. Para diretórios que possuem "entradas" de log individuais adicionados como arquivos separados (principalmente / Library / Logs / CrashReporter /), os arquivos são eliminados por /etc/periodic/daily/100.clean-logs. Suas políticas (que são diretórios para escanear & por quanto tempo deixar arquivos) são configuradas em /etc/defaults/periodic.conf, mas se você quiser sobrescrevê-las / alterá-las, você deve criar /etc/periodic.conf.local e colocar seu personalizações lá.

Se o que você deseja girar não se encaixa em nenhum desses modelos, você pode adicionar seus próprios scripts ao / etc / periodic / daily / (que será executado todas as manhãs às 3:15 am), / etc / periodic / semanal / (todos os sábados às 3h15), ou / etc / periódico / mensal / (primeiro de cada mês às 5h30).

    
por 24.01.2012 / 07:14
10

newsyslog é executado automaticamente no OSX, eu uso um arquivo de configuração como este em /etc/newsyslog.d/rails_apps.conf para manter meus arquivos de log de depuração aparados para 5MB

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

Você pode obter logrotate via Homebrew. Aqui estão minhas anotações para configurar isso.

Instalar

brew install logrotate

Configurar a rotação do log

Os arquivos de configuração de rotação do log estão em /usr/local/etc/logrotate.d/

Edite o arquivo de configuração. Por exemplo. Eu queria rodar alguns arquivos "/var/log/tend_*.log" que eu apresentei:

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

Conteúdo: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }

Teste-o

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

Iniciar serviço

sudo brew services start logrotate

Reiniciar serviço

sudo brew services restart logrotate

    
por 15.08.2017 / 23:18
0

Uma maneira de fazer isso:

link

    
por 24.01.2012 / 13:44