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.