Something went wrong on our end
-
Florent Thiery authoredFlorent Thiery authored
test_backup.py 1.59 KiB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2017, Florent Thiery
'''
Criticality: Medium
Checks that the server backups are not older than a day
'''
import os
import sys
import subprocess
import imp
from datetime import datetime
os.chdir(os.path.dirname(__file__))
def test_ssh(server):
status, out = subprocess.getstatusoutput('ssh -o StrictHostKeyChecking=no %s ls /tmp' % server)
return status == 0
def test_last_backup_is_recent(server, client):
path = '/backup/%s/current' % client
cmd = 'ssh -o StrictHostKeyChecking=no %s ls -l %s | grep current' % (server, path)
status, out = subprocess.getstatusoutput(cmd)
if status == 0:
date = out.strip().split(' ')[-2]
pdate = datetime.strptime(date, '%Y-%m-%d')
if (datetime.now() - pdate).days > 2:
print('Backup is older than 2 days')
return False
else:
print('There is a backup that is less than 2 days old, this is fine')
return True
else:
return False
if os.path.isfile('../utils.py'):
es_utils = imp.load_source('es_utils', '../utils.py')
conf = es_utils.load_conf()
BURP_SERVER = conf.get('BURP_SERVER')
BURP_CLIENT_NAME = conf.get('BURP_CLIENT_NAME', 'localhost')
if BURP_SERVER:
if not test_ssh(BURP_SERVER):
print('Failed to ssh into backup server')
sys.exit(1)
else:
if not test_last_backup_is_recent(BURP_SERVER, BURP_CLIENT_NAME):
sys.exit(1)
else:
sys.exit(0)
else:
sys.exit(2)
else:
sys.exit(2)