Posso limitar o tamanho de ~ / .xsession-errors?

7

Existe alguma maneira de limitar o tamanho de .xsession-errors. ?

Estou recebendo um grande número de mensagens específicas de depuração e o tamanho do arquivo é de até 2,8 GB (durante muitos meses). A mensagem representa 95% de todas as linhas em .xsession-errors.

Acho que sei qual aplicativo é, e vou ter que analisar isso separadamente, mas por enquanto gostaria de saber se existe uma configuração para impedir o crescimento em aberto do log.

O log está dividido em dois arquivos. (0,8 GB e 2,0 GB)

UPDATE:
Depois de aplicar a sugestão do RobinJ de logrotate (que mantém o tamanho do arquivo inativo), notei que depois de excluir manualmente o arquivo de 2.0 GB .xsession-errors.old , ele reapareceu (tamanho = 0) ...

Isso significa que algo diferente de logrotate está gerenciando esse arquivo de log, caso em que parece que esse outro aplicativo pode gerenciar o limite de tamanho do log, etc., e seria mais apropriado.

O que é este programa?

===========
Postar resposta Editar: Minha atualização realmente mudou o tom da pergunta original e Mark Russell respondeu muito bem a este segundo ponto .... RobinJ respondeu à minha pergunta original de acordo com o título .. graças a ambos ..

    
por Peter.O 31.05.2011 / 16:50

4 respostas

4

logrotate deve ser capaz de fazer isso.

    
por RobinJ 31.05.2011 / 17:02
3

fred. .xsession-errors é limpo em cada reinício da sua sessão X. Na verdade, ele é renomeado para .xsession-errors.old e um novo .xsession-errors é criado no login do X. Portanto, se você tiver um log massivo de .xsession-errors, dois logout / logins serão apagados. Então, excluindo manualmente, meu ponto é que, dada a regularidade das atualizações de segurança do kernel, não é esperado que as sessões durem meses.

Sua descrição (o tamanho do arquivo está crescendo ao longo de meses) sugere que você não reinicializou durante esse período. Se este não for o caso, ou seja, você reiniciou o sistema e ainda assim o arquivo nunca foi rotacionado, por favor poste mais informações, começando com: qual versão do Ubuntu você está usando? Você está executando o GNOME ou o KDE ou outro ambiente de área de trabalho?

Quanto ao arquivo que reaparece automaticamente, não há aplicativo separado gerenciando o arquivo de log. A razão pela qual o arquivo é recriado é devido ao modo como o redirecionamento funciona. Por exemplo. o comando echo stuff >> /var/log/stuff.log funcionará se o arquivo /var/log/stuff.log existir ou não.

    
por Mark Russell 01.06.2011 / 16:15
1

Encontrei o comando que mostra qual programa está acessando o arquivo. É lsof .
Para descobrir qual programa está usando .xsession-errors, você pode usar lsof | grep .xsession-errors . Além disso, há também o fuser . É um pouco mais fácil de usar na minha opinião.
Você pode usar apenas fuser .xsession-errors . Ele lhe dará o arquivo e o PID do processo que está usando o arquivo. Adicionar -v também mostra o nome do próprio programa. Adicionar -k apenas mata os processos que estão usando o arquivo.

    
por RobinJ 01.06.2011 / 13:47
1

Minha correção é a seguinte:

tarefa cron diária: tail ~/.xsession-errors > ~/.xsession-errors

Eu não estou realmente com vontade de descobrir qual pacote do Ubuntu está quebrado. Isso não acontece nos meus sistemas não Ubuntu.

Observe que será efetivamente o mesmo que apenas >~/.xsession-errors , ou seja, truncará o arquivo.

Há também uma maneira de redirecionar permanentemente .xsession-errors para /dev/null , consulte aqui .

    
por bill 14.03.2012 / 21:28

Tags