logrotate é a grande ideia do unix para dividir uma quantidade arbitrária de logs em partes de determinadas propriedades. Uma ferramenta menor, porém mais padrão, é split , que tem uma curva de aprendizado mais curta: link
Eu tenho um longo processo em execução e espero que os arquivos de log sejam executados em várias centenas de GBs. O programa é um binário pré-compilado - por isso não posso modificar a lógica no código.
Existe um comando como ferramenta (como tee
) para o qual eu posso redirecionar minha saída. Essa ferramenta então gravaria o stdout do meu processo de longa duração no disco e começaria a escrever um novo arquivo assim que atingisse um certo limite (digamos, 1GB).
Veja o que tenho em mente:
%> long-running.sh | responsible-logger --max-length 1G output%02d.log
logrotate é a grande ideia do unix para dividir uma quantidade arbitrária de logs em partes de determinadas propriedades. Uma ferramenta menor, porém mais padrão, é split , que tem uma curva de aprendizado mais curta: link
Tags command-line unix