Есть bareos (форк бакулы), который работает, но не умеет удалять старые бэкапы.
Пул определяется примерно так (пулов много):
Pool {
Name = 2wks
Pool Type = Backup
Recycle = no
Volume Retention = 14 days
Maximum Volume Jobs = 1
Label Format = "${Pool}-${JobName}"
Action On Purge = Truncate
}
Как теперь сделать так, чтобы удалялись старые файлы томов с истекшим сроком хранения?
В интернетах рекомендуют разные костыли, я использовал такой (сделал или скопипастил, не помню):
...
for p in `echo "list pool" | bconsole | grep " Backup " | sed 's/ */ /g' | cut -d ' ' -f4`; do
for f in `echo "list volume pool=$p" | bconsole | grep Purged | sed 's/ */ /g' | cut -d ' ' -f4`; do
find $BACKUPROOT -type f -name "$f" -exec rm -f {} \;
echo "delete volume=$f yes" | bconsole;
done
done
Была мысль использовать «Action On Purge = Truncate» (вон он в конфиге), чтобы том автоматически урезался до 0, а потом скриптом по крону удалять нулевые файлы. Но «Action On Purge» в конфиге ни на что не повлиял.
Подскажите какой-нибудь годный способ.