logrotate файлы старше x часов

1075
froodley

Что не так с этим rotate.conf?

Цель состоит в том, чтобы удалить только файлы старше четырех часов

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

1 ответ на вопрос

0
bgStack15

Вы заявили, что ваша цель - удалить файлы старше четырех часов. Используя bash 4.3.46 (Ubuntu 16.04) и find 4.7.0, я смог использовать команду find с десятичным mtime:

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

Просто конвертируйте 4/24 в десятичную и все готово. Вы можете поместить это в сценарий и, возможно, pipe-rm или сделать по -exec rm {} \;желанию.

Он не использует logrotate, но достигает цели удаления файлов старше, чем (4/24) дней.

Изменить: бонусный раунд

Видимо есть -mminвариант. Попробуйте это для размера:

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

Похожие вопросы