logrotate arquivos com mais de x horas

0

O que há de errado com este rotate.conf?

O objetivo é excluir apenas arquivos com mais de quatro horas

path/to/tokens/*.tkn {
    nosharedscripts
    prerotate
       if test 'stat --format=%Y $1' -le $(( 'date +%s' - 14400 ));
       then exit $?;
       fi;'
    endscript
    rotate 0
}
    
por froodley 24.07.2016 / 01:14

1 resposta

0

Você declarou que seu objetivo é excluir arquivos com mais de quatro horas. Usando o bash 4.3.46 (Ubuntu 16.04) e encontrando o 4.7.0, consegui usar um comando find com um m decimal:

find /path/to/tokens/ -name "*.tkn" -mtime 0.1666666

Apenas converta 4/24 em decimal e lá vai você. Você pode colocar isso em um script e talvez pipe-rm ou fazer um -exec rm {} \; conforme desejado.

Ele não usa logrotate, mas atinge o objetivo de excluir os arquivos com mais de (4/24) dias.

Editar: rodada de bônus

Aparentemente, há uma opção -mmin . Experimente isso por tamanho:

find /path/to/tokens/ -name "*.tkn" -mmin +240 -exec rm {} \;
    
por 25.07.2016 / 14:36