Newer
Older
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2017, Florent Thiery
'''
Criticality: Medium
'''
import os
import sys
import subprocess
import imp
from datetime import datetime
GREEN = '\033[92m'
RED = '\033[91m'
DEF = '\033[0m'
def test_ssh(ip):
cmd = 'ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no %s ls /tmp' % ip
print('Connecting to MediaVault: %s' % cmd)
try:
subprocess.check_output(cmd, shell=True, timeout=2)
print('%sLogged in successfully%s' % (GREEN, DEF))
except subprocess.CalledProcessError:
print('%sFailed to login using SSH, run ssh-copy-id %s %s' % (RED, ip, DEF))
return False
return True
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)
date = out.strip().split(' ')[-2]
pdate = datetime.strptime(date, '%Y-%m-%d')
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')
else:
return False
if os.path.isfile('../utils.py'):
es_utils = imp.load_source('es_utils', '../utils.py')
conf = es_utils.load_conf()
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:
print('No BURP_SERVER defined in config, untestable')