Я хочу запланировать ротацию журналов по следующим правилам:
Я хочу использовать для этого logrotate, но не уверен, что он подходит мне или нет.
Я бы хотел что-то подобное, но это не работает.
/mylog/* {
prerotate
DIR=$(date +%y%m%d); // actually it's current date
mkdir $DIR
endscript
daily
rotate 2
olddir /mylog/$DIR
missingok
compress
postrotate
find /mylog -type d -mtime +180 | xargs rm -f
endscript
}
Logrotate не понимает, что $ DIR является переменной.
Любые предложения приветствуются!
По словам @koniu от суперпользователя, это невозможно. Насколько я проверил, других способов не нашел.
Для возраста журнала у вас есть maxage
директива, которая согласно странице руководства:
maxage count
Remove rotated logs older than <count> days. The age is only
checked if the logfile is to be rotated. The files are mailed to
the configured address if maillast and mail are configured.
Похоже, это не работает со старыми журналами, перемещенными в olddir.