OSX /var/log/system.log - onde eu defino o intervalo de remoção?

7

Eu tenho um script que verifica periodicamente o /var/log/system.log e notei em toda a nossa rede que algumas máquinas mantêm arquivos de log por um mês através de reinicializações e outras atividades, enquanto alguns limpam o arquivo a cada noite ou cada reinicialização .

Alguém sabe as regras exatas aqui, ou se eu posso especificar intervalos? Desde já, obrigado.

    
por David Houde 28.04.2011 / 14:50

1 resposta

6

No OS X, /var/log/system.log é rotacionado pelo comando newsyslog , que é executado a meia hora a cada hora (veja /System/Library/LaunchDaemons/com.apple.newsyslog.plist) sempre que o Mac estiver funcionando e acordado. As regras de rotação estão em /etc/newsyslog.conf, a partir das quais as linhas relevantes são:

# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/var/log/system.log                     640  7     *    @T00  J

Se eu entendi isso corretamente (consulte o Página man do newsyslog.conf ), o "@ T00" no campo "when" significa que o log será rotacionado se o newsyslog for executado entre meia-noite e 1h - ou seja, às 12h30. Mas se o Mac estiver desligado ou adormecido às 12h30, essa corrida não acontecerá e o registro não será rotacionado naquele dia, o que provavelmente explica por que você vê resultados tão variáveis.

Se você quiser alterar os critérios de rotação, sinta-se à vontade para editar /etc/newsyslog.conf; a maioria dos outros logs são rotacionados com base no tamanho e não sei por que o system.log é diferente.

UPDATE: Iniciando em 10.9, o controle de rotação para system.log foi movido de /etc/newsyslog.conf para /etc/asl.conf (a configuração para o recurso Apple System Log, que faz a gravação para system.log) . Vai ter uma seção como esta:

# Rules for /var/log/system.log
> system.log mode=0640 format=bsd rotate=seq compress file_max=5M all_max=50M
? [= Sender kernel] file system.log
? [<= Level notice] file system.log
? [= Facility auth] [<= Level info] file system.log
? [= Facility authpriv] [<= Level info] file system.log

A seção "rotate = seq compress file_max = 5M all_max = 50M" controla o arquivamento e a retenção. Veja man asl.conf para mais informações e opções.

O sistema de registro tem uma reescrita bem completa no 10.12, mas isso não parece ter mudado.

    
por 29.04.2011 / 05:39