sysom1/sysom_server/sysom_diagnosis/service_scripts/filecache

50 lines
1.4 KiB
Python
Executable File

#!/usr/bin/python3
# coding=utf-8
import json
import sys
###############################################################################
## {
## "service_name":"filecache",
## "instance":"192.168.1.101"
## }
## 解析参数方法:
## sysak memgraph -j /var/log/sysak/memgraph.json -g -l -f -k -c 3 && cat /var/log/sysak/memgraph.json
## cat /var/log/sysak/memgraph.json 是memgraph诊断结果
##
###############################################################################
class Param(dict):
def __missing__(self,key):
sys.stderr.write("入参检查失败,没有检查到入参'%s'"%key)
exit(1)
args = Param(json.loads(sys.argv[1]))
result = {}
result['commands'] = []
cmd0 = {}
cmd0['instance'] = args["instance"]
cache_type = args['type']
value = args['value']
cache_cmd = "sysak podmem -r 100 "
if cache_type == "pod":
cache_cmd += " -p " + str(value)
elif cache_type == "container":
cache_cmd += " -c " + str(value)
elif cache_type == "all":
cache_cmd += " -a"
elif cache_type == "cgroup":
cache_cmd += " -f " + str(value)
elif cache_type == "host":
cache_cmd += " -s "
else:
sys.stderr.write("没有检查到诊断类型")
exit(1)
cmd0['cmd'] = "mkdir -p /var/log/sysak && %s -j /var/log/sysak/podmem.json > /dev/null 2>&1 && cat /var/log/sysak/podmem.json"%(cache_cmd)
result['commands'].append(cmd0)
data = json.dumps(result)
print(data)