Como posso escrever uma tarefa cron para arquivar meus arquivos de log todas as noites?

2

Suponho que isso seja relativamente fácil, mas meu script de shell não é ótimo, por isso espero obter ajuda.

Eu tenho uma tarefa que é executada a cada hora e acrescenta sua saída a um arquivo de log. Eu gostaria de mover esse arquivo de log todas as noites para que o script tenha um vazio para trabalhar e os logs sejam mais fáceis de serem verificados quando eu precisar verificá-los.

Então eu gostaria de um script que se mova

/var/log/my.log

para

/var/log/my.log.2 ou my.log.yyyy.mm.dd ou algo assim.

Como posso fazer isso com facilidade?

    
por Matt 07.02.2012 / 03:17

1 resposta

3

Você vai querer verificar logrotate que é instalado por padrão (ou facilmente através de um gerenciador de pacotes) em quase todas as principais distribuições Linux. É muito fácil criar uma entrada de configuração simples para girar seu arquivo de log - tudo que você precisa saber sobre as opções de configuração está na página do manual.

Algumas distribuições usam um diretório especial /etc/logrorate.d/ para especificar arquivos de logrotate individuais para cada arquivo de log (ou um grupo relacionado de arquivos de log). Se a sua distribuição usa esse método, é tão simples quanto criar um arquivo de nome apropriado nesse diretório com um bloco de configuração, conforme descrito na man page.

Caso contrário, você pode simplesmente anexar o novo bloco de configuração ao final do arquivo /etc/logrotate.conf existente.

    
por 07.02.2012 / 04:03