From 6b96466473805951a35ad43738d559e8a3a9728e Mon Sep 17 00:00:00 2001 From: Anael Mobilia Date: Tue, 2 Jun 2020 17:37:23 +0200 Subject: [PATCH] Add backupninja snmp script (#264) * Add backupninja snmp script * jsonify output * Better codestyle & apply JSON requirements * Optimize file using redis.py example * Properly use of the LibreNMS json format * typo --- snmp/backupninja.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 snmp/backupninja.py diff --git a/snmp/backupninja.py b/snmp/backupninja.py new file mode 100644 index 0000000..ce9408d --- /dev/null +++ b/snmp/backupninja.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import io +import re +import os +import json + +version = 1 +error = 0 +error_string = '' + +logfile = '/var/log/backupninja.log' + +backupninja_datas = { + 'last_actions': 0, + 'last_fatal': 0, + 'last_error': 0, + 'last_warning': 0} + +if not os.path.isfile(logfile): + error_string = 'file unavailable' + error = 1 + break + +with io.open(logfile,'r') as f: + for line in reversed(list(f)): + match = re.search('^(.*) [a-zA-Z]*: FINISHED: ([0-9]+) actions run. ([0-9]+) fatal. ([0-9]+) error. ([0-9]+) warning.$', line) + if match: + backupninja_datas['last_actions'] = int(match.group(2)) + backupninja_datas['last_fatal'] = int(match.group(3)) + backupninja_datas['last_error'] = int(match.group(4)) + backupninja_datas['last_warning'] = int(match.group(5)) + break + +output = {'version': version, + 'error': error, + 'errorString': error_string, + 'data': backupninja_datas} + +print(json.dumps(output))