return config
+notices_seq = []
problems_seq = []
problems_per_db = {}
global_expires = []
# global problems_per_db
# if not host in problems_per_db: problems_per_db[host] = {}
# problems_per_db[host][db] = True
+def note_info(key, value, pre=None):
+ global notices_seq
+ if pre is None:
+ notices_seq.append("%s: %s"%(key, value))
+ else:
+ notices_seq.append("[%s] %s: %s"%(pre, key, value))
def note_warning(key, value, pre=None):
global problems_seq
os.chdir(config['rootdir'])
for dir in os.listdir('.'):
+ if dir.startswith('.'):
+ note_info('IGNORED', dir)
+ continue
+
if not os.path.isdir(dir):
- note_warning('NOT-A-DIR', dir)
+ if min(os.path.getmtime(dir), os.path.getctime(dir)) + 3600*4 > time.time():
+ note_info('IGNORED', dir)
+ else:
+ note_warning('NOT-A-DIR', dir)
continue
if not dir in config['backups']:
for db in backup_state:
if not 'newest-base' in backup_state[db]:
- note_warning(dir, db, 'NO-BASE', 'no base backup found?')
+ note_warning_db(dir, db, 'NO-BASE', 'no base backup found?')
else:
age = time.time() - os.stat(backup_state[db]['newest-base']).st_mtime
if age > config['warn-age']['base']:
- note_warning(dir, db, 'BASE-IS-OLD', 'latest base backup is too old')
+ note_warning_db(dir, db, 'BASE-IS-OLD', 'latest base backup is too old')
if not 'newest-wal-file' in backup_state[db]:
- note_warning(dir, db, 'NO-BASE', 'no WAL files found?')
+ note_warning_db(dir, db, 'NO-BASE', 'no WAL files found?')
else:
age = time.time() - os.stat(backup_state[db]['newest-wal-file']).st_mtime
if age > config['warn-age']['wal']:
- note_warning(dir, db, 'WAL-IS-OLD', 'latest wal file is too old')
+ note_warning_db(dir, db, 'WAL-IS-OLD', 'latest wal file is too old')
for db in backup_state:
if len(backup_state[db]['expires']) > 0:
for p in problems_seq:
print p
+for p in notices_seq:
+ print p
if options.expire:
for f in global_expires: