Como salvar o boot.log entre as reinicializações?

2

Como você salva o /var/log/boot.log entre as reinicializações? Ou, mais especificamente, como você pode apenas ter botas anexadas a esse arquivo? Eu tenho um problema com um kernel que estou executando e preciso ser capaz de preservar o boot.log quando eu inicializo em um kernel funcional.

    
por user1529891 29.12.2013 / 09:09

2 respostas

1

Eu descobri a minha resposta; mas requer o uso de systemd .

Pode-se habilitar o registro de diário persistente criando /var/log/journald/ ; depois de feito isso, é possível visualizar logs de longo prazo usando journalctl .

    
por 09.06.2015 / 23:32
2

Não há nenhuma maneira oficial de fazer isso que eu já vi usando rsyslogd ou logrotate . Uma maneira fácil de fazer isso, no entanto, é criar uma entrada @reboot crontab que possa fazer o backup do arquivo boot.log antes da reinicialização.

Exemplo

Adicione o seguinte ao arquivo /etc/crontab do seu sistema.

@reboot cp -p /var/log/boot.log /var/log/boot.log.$(date +%F_%R)

Isso criará arquivos assim nomeados em /var/log/ .

  • boot.log.2013-12-29_03: 29
  • boot.log.2013-12-29_21: 30

Os carimbos de hora / data no arquivo quando ls -l desses arquivos serão as informações originais. O cp -p preservará isso.

Essa abordagem vai acumular arquivos com você ao longo do tempo, então você pode querer apenas dizer os últimos 10 ou mais. Você pode adicionar mais regras @reboot , diga algo assim para também cortar esses arquivos.

@reboot [[ $(ls -1r /var/log/boot.log.* | wc -l) -gt 10 ]] \
    && ls -1r /var/log/boot.log.* | tail -n +10 | xargs rm

O acima irá verificar se temos mais de 10 boot.log.* para começar. Se fizermos isso, listará os arquivos na ordem inversa do tempo de criação, filtrará os 10 mais recentes e excluirá o restante.

Detalhes

Este bit retornará o número de boot.log.* presentes no momento.

$(ls -1r /var/log/boot.log.* | wc -l)

Isto irá verificar se esse número é maior que 10.

[[ $(...) -gt 10 ]]

Se houver mais de 10 arquivos, então chamaremos o comando remove.

.... && ls -1r /var/log/boot.log.* ... xargs rm

Referências

por 29.12.2013 / 09:31

Tags