Limitar um arquivo de texto para 100MB

2

Eu tenho vários arquivos de log no meu servidor que eu gostaria de limitar a 100MB de tamanho. Estou pensando em criar um cron job que será executado uma vez por mês e remover os caracteres mais antigos (mais próximos do topo) de cada arquivo de log, aumentando a cada 100 megas ou menos. Como posso fazer isso?

    
por Hoytman 01.07.2014 / 16:53

3 respostas

3

I am considering creating a cron job that will run once a month and remove the oldest characters (closest to the top) from each log file, making each 100 megs of less in size.

Existem alguns problemas que podem surgir com essa metodologia, portanto, primeiro certifique-se de que o processo de registro está correto e continue a registrar quando você editar um arquivo dessa maneira. Se ele mantiver o identificador de arquivos aberto, provavelmente é uma má idéia.

A maneira normal de gerenciar logs é com logrotate , mas observe que há problemas potenciais com isso também - alguns aplicativos reagirão mal a ter seus arquivos de log trocados. O registrador do sistema, na verdade, se enquadra nessa categoria e deve ser sinalizado após a rotação para reabrir o novo registro.

Uma opção similar que evita interromper o processo, se ele pode logar na saída padrão ou erro padrão, é usar pipelog . O Pipelog age como um intermediário para o processo e o arquivo de log para que você possa sinalizá-lo para girar ou excluir o registro sem interromper ou perturbar qualquer coisa:

> someprocess | pipelog someprocess.logfile &
[pipelog 5334] Using 'someprocess.logfile' as a log file.

Você pode girar o log enviando o pipelog SIGUSR1: kill -s USR1 5334 , ou excluí-lo e iniciar um novo com SIGUSR2.

    
por 01.07.2014 / 17:32
2

Use logrotate , ele gira seus registros E os compacta para você, se quiser. Muito provavelmente ele já estará rodando no seu sistema, então crie um arquivo em /etc/logrotate.d para dizer ao logrotate como tratar seus logs. Verifique o arquivo man para especificações ...

    
por 01.07.2014 / 17:25
-1

man split irá ajudá-lo. Especialmente o sinalizador -b .

    
por 01.07.2014 / 16:57

Tags