Logrotation de um arquivo

1

Eu quero girar um arquivo e colocar o arquivo girado dentro de um novo diretório chamado 'backup'. A rotação do log está funcionando bem onde o arquivo girado não está sendo movido dentro do diretório de backup. Por favor, encontre abaixo o script que eu usei.

Nota: somente o arquivo recém-girado que é compactado para o formato .gz não é movido para dentro da pasta de backup, onde, como se você mantivesse qualquer outro arquivo zip com formato .gz, ele é movido.

Script -

compress    

/data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/test.log {
        daily
        copytruncate
        create 775 root wsdepl
        dateext
     dateformat %Y-%m-%d
        rotate 30
     maxage 30
        missingok
        #notifempty 
     sharedscripts
     postrotate
        mv /data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/*.gz /data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/backup
     endscript
}
    
por Abhilash 10.02.2016 / 10:30

1 resposta

2

Em logrotate(8) :

It allows automatic rotation, compression, removal, and mailing of log files. [...] The lines between postrotate and endscript (both of which must appear on lines by themselves) are executed after the log file is rotated.

Em outras palavras: postrotate acontece após a rotação, mas antes da compactação. O arquivo gzip do seu log ainda não existe quando sua chamada mv é feita.

logrotate não fornece um postcompress hook, mas você pode:

  1. Use o lastaction hook em seu lugar.
  2. Manipule a compactação em seu postrotate script / code. Crie um script de shell que feche o arquivo, mova-o e chame-o na seção postrotate . Não se esqueça de desativar a opção compress nesse caso.
  3. Faça uma coisa semelhante usando compresscmd e uncompresscmd , usando scripts personalizados de compactação / descompactação que cuidam de localizar e mover o arquivo quando necessário.
  4. Cuide da movimentação em um trabalho CRON independente de logrotate ou programe-a na seção postrotate usando at (isso não está realmente limpo, já que você não pode realmente prever o tempo de compressão) .

Para mais informações, dê uma olhada aqui . O fluxo de trabalho de logrotate pode ser um pouco difícil de entender no começo, mas depois que você tomar as providências necessárias, tudo deve ocorrer sem problemas;) Você também pode estar interessado nas seguintes perguntas de SE:

por 10.02.2016 / 11:03