logrotate Dateien älter als x Stunden

1023
froodley

Was ist los mit dieser rotate.conf?

Ziel ist es, nur Dateien zu löschen, die älter als vier Stunden sind

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

1 Antwort auf die Frage

0
bgStack15

Sie haben angegeben, dass es Ihr Ziel ist, Dateien zu löschen, die älter als vier Stunden sind. Mit bash 4.3.46 (Ubuntu 16.04) und find 4.7.0 konnte ich einen find-Befehl mit einer dezimalen mtime verwenden:

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

Konvertieren Sie einfach 4/24 in dezimal und los geht's. Sie können das in ein Skript und vielleicht ein Pipe-rm einfügen oder ein -exec rm {} \;beliebiges tun .

Es wird nicht logrotate verwendet, es wird jedoch das Ziel erreicht, Dateien zu löschen, die älter als (4/24) Tage sind.

Bearbeiten: Bonusrunde

Anscheinend gibt es eine -mminOption. Versuchen Sie dies für Größe:

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