Você está seriamente superando isso. Mal.
Veja alguns pseudocódigo:
- Todos os dias:
- faça um backup, coloque em
dailydirectory - remover tudo, exceto os últimos 7
dailybackups
- faça um backup, coloque em
- toda semana:
- faça um backup, coloque em
weeklydirectory - remover tudo, exceto os últimos 5
weeklybackups
- faça um backup, coloque em
- Todo mês:
- faça um backup, coloque em
monthlydirectory - remover tudo, exceto os últimos 12
monthlybackups
- faça um backup, coloque em
- todos os anos:
- faça um backup, coloque em
yearlydirectory
- faça um backup, coloque em
A quantidade de lógica que você precisa implementar é quase a mesma, né? BEIJO.
Isso parece mais fácil:
s3cmd ls s3://backup-bucket/daily/ | \
awk '$1 < "'$(date +%F -d '1 week ago')'" {print $4;}' | \
xargs --no-run-if-empty s3cmd del
Ou por contagem de arquivos em vez de idade:
s3cmd ls s3://backup-bucket/daily/ | \
awk '$1 != "DIR"' | \
sort -r | \
awk 'NR > 7 {print $4;}' | \
xargs --no-run-if-empty s3cmd del