diff --git a/snmp/redis.py b/snmp/redis.py new file mode 100755 index 0000000..59905c6 --- /dev/null +++ b/snmp/redis.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 + +import subprocess +import json + +shell_cmd = "redis-cli info" +all_data = subprocess.Popen(shell_cmd, shell=True, stdout=subprocess.PIPE).stdout.read().split(b'\n') + +version = 1 +error = 0 +error_string = "" +redis_data = {} + +# stdout list to json +try: + category = '' + for d in all_data: + d = d.replace(b'\r', b'') + + if d in [b'']: + continue + + if d.startswith(b'#'): + category = d.replace(b'# ', b'').decode("utf-8") + redis_data[category] = {} + continue + + if not len(category): + error = 2 + error_string = 'category not defined' + break + + k, v = d.split(b':') + k = k.decode("utf-8") + v = v.decode("utf-8") + + # convert string to int/float, if possible +# try: +# if '.' in v: +# v = float(v) +# else: +# v = int(v) +# except ValueError: +# pass + + redis_data[category][k] = v + +except: + error = 1 + error_string = 'data extracting error' + +output = {'version': version, + 'error': error, + 'errorString': error_string, + 'data': redis_data} + +#print (json.dumps(output, indent=4, sort_keys=True)) +print (json.dumps(output))