Mantendo cópias do arquivo de log X no Debian

5

Recentemente, tentei substituir meu driver Nvidia pelo driver Nouveau pela minha placa Nvidia (consulte Como mudar de driver proprietário da Nvidia para Driver Nouveau para placa Nvidia no Debian wheezy ).

Infelizmente, esta tentativa caiu e queimou, então abortei. No entanto, depois que reiniciei minha configuração habitual, e a fumaça clareou, descobri algo que já sabia, que o Debian mantém apenas uma cópia dos logs do servidor X, ou seja, /var/log/Xorg.0.log . Portanto, o log da minha tentativa malfadada de mudar para Nouveau tinha sido perdido.

Então, minha pergunta é: como posso alterar a configuração do Debian para manter cópias antigas do arquivo de log do X?:

Eu achei que esse tipo de lógica foi manipulado pelo logrotate, mas /etc/logrotate.conf e /etc/logrotate.d/ não tem nenhuma lógica específica sobre isso, que eu possa ver. É apenas uma questão de adicionar algo lá? Se assim for, eu me pergunto por que não está lá já.

    
por Faheem Mitha 23.03.2014 / 20:20

1 resposta

5
O comportamento de registro de log do

X é:

  1. Se houver um /var/log/Xorg.DISPLAY.log , renomeie-o para /var/log/Xorg.DISPLAY.log.old , sobrescrevendo qualquer arquivo que possa estar lá.
  2. Abra /var/log/Xorg.DISPLAY.log e comece a fazer login.

Infelizmente, isso não é configurável, exceto no sentido de que todo software de código aberto é: você pode alterar o código-fonte e recompilar. Está no pacote xserver-xorg source, grep para LogInit para encontrar os pontos certos.

Dito isso, você pode encontrar uma maneira de preservar os registros antigos. Por exemplo, kdm tem vários scripts em / etc / kde4 / kdm que são executados como root antes de mostrar a tela de login; você pode adicionar um comando savelog para salvar o arquivo .old . gdm presumivelmente tem semelhante.

Ou você pode usar dpkg-divert on /usr/bin/X e colocar um script lá que chame savelog no arquivo não antigo e, em seguida, exec no X real. Você também pode alterar o caminho do gerenciador de exibição (kdm, gdm) usa para executar X para esse script e não desviar X.

    
por 24.03.2014 / 17:50