HEX
Server: LiteSpeed
System: Linux pl-rocket-da1.hostsila.org 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: etorby24eu (1588)
PHP: 8.3.23
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //opt/node_api/test.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os.path
import re
import json

edac_data = {}
edac_data['path'] = {}
edac_data['slot'] = {}
edac_data['error_count'] = {}
i = 0
if os.path.exists('/sys/devices/system/edac/mc'):
    data = \
        os.popen('ls /sys/devices/system/edac/mc/mc*/*/*ce_count 2>/dev/null').read().strip().split('\n')
    for slot in data:
        if os.path.exists(slot):
            file = open(slot, 'r').read().strip()
            if file > '0':
                edac_data['path'][i] = slot
	        path = re.search('^(.*)\/(.*)_ce_count$', slot, re.M | re.I)
		if path:
			label = os.popen('ls ' + path.group(1) + '/*_label 2>/dev/null').read().strip().split('\n')
		        edac_data['slot'][i] =  open(label[0], 'r').read().strip()
	                edac_data['error_count'][i] = file
	                i += 1

        edac_data['Manufacturer'] = \
            os.popen('dmidecode -t 2 |grep -E "Manufacturer"|cut -d: -f2'
                     ).read().strip()
        edac_data['Model'] = \
            os.popen('dmidecode -t 2 |grep -E "Product Name"|cut -d: -f2'
                     ).read().strip()
    print json.dumps(edac_data)