logrotate deve ser capaz de fazer isso.
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 ..
logrotate deve ser capaz de fazer isso.
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.
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.
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 .