#!/usr/bin/env python3 from os.path import getmtime, isfile from sys import exit from time import time statusfile = '/var/tmp/backup.monitoring' if not isfile(statusfile): print('Status file not found') exit(3) mtime = getmtime(statusfile) now = time() if now-mtime > 60*60*24*2: print('Status file is older than 2 days!') exit(3) with open(statusfile, 'r') as f: status = f.read().split() if status[0] == 'ok': print('OK') exit(0) elif status[0] == 'rsync_error': print('rsync produced some errors, exit codes were: {}'.format( ', '.join(status[1:]) )) exit(2) elif status[0] == 'hook': print('run-parts /etc/backup-pre-hook.d failed with exit code {}'.format(status[1])) exit(2) elif status[0] == 'abort_no_key': print('no ssh key found in /etc/backup.priv!') exit(1) else: # garbage in file print(' '.join(status)) exit(3)