]> andersk Git - sql.git/blob - libexec/backup-policy.py
backups: keep less monthlys
[sql.git] / libexec / backup-policy.py
1 #!/usr/bin/python
2
3 import os, re, sys
4 from time import strptime
5 from glob import glob
6
7 PATH = os.path.abspath(sys.argv[1])
8 backups = glob('%s/weekly/*.gz' % PATH)
9 backups.sort()
10 backups.reverse()
11 backups = [[x, re.match('.*(\d\d\d\d-\d\d-\d\d).*', x)] for x in backups]
12 backups = [[x[0], strptime(x[1].groups()[0], '%Y-%m-%d')] for x in backups]
13
14 keep = backups[:2]
15 backups = backups[2:]
16 monthlys = {}
17 for x in backups:
18     month = (x[1].tm_year, x[1].tm_mon)
19     if month not in monthlys:
20         monthlys[month] = x
21     if len(monthlys) > 3:
22         break
23 keep.extend(monthlys.values())
24
25 for x in backups:
26     if not x in keep:
27         print 'rm %s' % x[0]
28     else:
29         print '# keeping %s' % x[0]
This page took 0.032869 seconds and 5 git commands to generate.