Como limitar o tamanho do arquivo de log da tela

2

Eu uso executar meu programa no gnu-screen com o log ativado para um arquivo ( log on / logfile options in .screenrc). Mas depois de algum tempo o arquivo de log ficou muito grande.

Existe alguma maneira de limitar o tamanho de um arquivo de log?

    
por Paboka 15.03.2017 / 13:40

1 resposta

0

A menos que você deseje controle em tempo real do tamanho do log, você pode usar logrotate com cron para realizar isso.

Supondo que você deseja girar screenlog.log no diretório /home/username/ , crie algo parecido com esse arquivo de configuração:

screenlog-rotate.conf :

/home/username/screenlog.log {
  size 100k
}

execute o logrotate /home/username/screenlog-rotate.conf ou configure-o como um cron job para ser executado periodicamente. Tenha em mente que logrotate precisa ser executado como root por padrão e o arquivo de configuração ( screenlog-rotate.conf acima) precisa também ser chown ed para root, caso contrário, ele reclamará que as permissões na configuração estão erradas. Teste executando logrotate com o sinal -v para ver se entendeu o que você quis dizer.

O arquivo de configuração acima é simples e não manterá arquivos de log antigos . Ele apenas removerá o arquivo se estiver acima do tamanho especificado, enquanto a tela ainda exibe seu log como de costume (testei isso). Se você quiser que os logs antigos sejam mantidos, será necessário adicionar rotate N , em que N é quantos logs girados você deseja manter.

Confira man 8 logrotate para detalhes sobre como configurar logrotate . Eis uma pergunta relacionada: Como limitar o tamanho do arquivo de registro usando > >

logrotate parece ser incluído por padrão no Arch Linux, mas não tenho certeza de outras distribuições. Eu esperaria pelo menos que o Debian o instalasse por padrão e que fosse fácil de instalar usando um gerenciador de pacotes.

    
por 15.03.2017 / 14:35

Tags