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
.
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.
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.
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/
.
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.
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