PATH: //proc/thread-self/root/usr/local/lib/python3.9/site-packages/agent360/plugins
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 __init__.py
↓
X
📁 __pycache__/
X
📄 apt-updates.py
↓
X
📄 asterisk.py
↓
X
📄 bind.py
↓
X
📄 bird.py
↓
X
📄 bitninja.py
↓
X
📄 cloudlinux-dbgov.py
↓
X
📄 cloudlinux.py
↓
X
📄 cpanel.py
↓
X
📄 cpu.py
↓
X
📄 cpu_freq.py
↓
X
📄 dirsize.py
↓
X
📄 diskinodes.py
↓
X
📄 diskstatus-nvme.py
↓
X
📄 diskstatus.py
↓
X
📄 diskusage.py
↓
X
📄 docker.py
↓
X
📄 dovecot.py
↓
X
📄 elasticsearch.py
↓
X
📄 exim.py
↓
X
📄 fail2ban.py
↓
X
📄 gpu.py
↓
X
📄 haproxy.py
↓
X
📄 httpd.py
↓
X
📄 iostat.py
↓
X
📄 janus.py
↓
X
📄 kamailio.py
↓
X
📄 litespeed.py
↓
X
📄 loadavg.py
↓
X
📄 loggedin.py
↓
X
📄 mailq.py
↓
X
📄 mdstat.py
↓
X
📄 megacli.py
↓
X
📄 memcached.py
↓
X
📄 memory.py
↓
X
📄 minecraft.py
↓
X
📄 mongodb.py
↓
X
📄 mysql.py
↓
X
📄 network.py
↓
X
📄 nginx.py
↓
X
📄 openvpn.py
↓
X
📄 phpfpm.py
↓
X
📄 ping.py
↓
X
📄 plesk-cgroups.py
↓
X
📄 plugins.py
↓
X
📄 postfix.py
↓
X
📄 powerdns.py
↓
X
📄 process.py
↓
X
📄 proftpd.py
↓
X
📄 rabbitmq.py
↓
X
📄 redis_stat.py
↓
X
📄 sleeper.py
↓
X
📄 swap.py
↓
X
📄 system.py
↓
X
📄 tcpports.py
↓
X
📄 temp.py
↓
X
📄 unbound.py
↓
X
📄 vms.py
↓
X
📄 wp-toolkit.py
↓
X
📄 yum-updates.py
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: system.py
#!/usr/bin/env python # -*- coding: utf-8 -*- try: import netifaces except ImportError: netifaces = None import os import platform from subprocess import Popen, PIPE import sys import time import psutil import plugins try: import distro except ImportError: distro = None def systemCommand(Command, newlines=True): Output = "" Error = "" try: proc = Popen(Command.split(), stdout=PIPE) Output = proc.communicate()[0] except Exception: pass if Output: if newlines is True: Stdout = Output.split("\n") else: Stdout = Output else: Stdout = [] if Error: Stderr = Error.split("\n") else: Stderr = [] return (Stdout, Stderr) def linux_hardware_memory(): block_size = 0 try: with open("/sys/devices/system/memory/block_size_bytes", "r") as f: block_size = int(f.readline().strip(), 16) memory = 0 with os.scandir("/sys/devices/system/memory/") as it: for entry in it: if not entry.name.startswith("memory"): continue with open(entry.path + "/state", "r") as f: if "online" != f.readline().strip(): continue else: memory += block_size return memory except Exception: return 0 def ip_addresses(): ip_list = {} ip_list['v4'] = {} ip_list['v6'] = {} if netifaces is None: return ip_list for interface in netifaces.interfaces(): link = netifaces.ifaddresses(interface) if netifaces.AF_INET in link: if interface not in ip_list['v4']: ip_list['v4'][interface] = [] ip_list['v4'][interface].append(link[netifaces.AF_INET]) if netifaces.AF_INET6 in link: if interface not in ip_list['v6']: ip_list['v6'][interface] = [] ip_list['v6'][interface].append(link[netifaces.AF_INET6]) return ip_list class Plugin(plugins.BasePlugin): __name__ = 'system' def run(self, *unused): systeminfo = {} cpu = {} cpu['brand'] = "Unknown CPU" cpu['count'] = 0 if(os.path.isfile("/proc/cpuinfo")): f = open('/proc/cpuinfo') if f: for line in f: # Ignore the blank line separating the information between # details about two processing units if line.strip(): if "model name" == line.rstrip('\n').split(':')[0].strip(): cpu['brand'] = line.rstrip('\n').split(':')[1].strip() if "Processor" == line.rstrip('\n').split(':')[0].strip(): cpu['brand'] = line.rstrip('\n').split(':')[1].strip() if "processor" == line.rstrip('\n').split(':')[0].strip(): cpu['count'] = line.rstrip('\n').split(':')[1].strip() if cpu['brand'] == "Unknown CPU": f = os.popen('lscpu').read().split('\n') if f: for line in f: # Ignore the blank line separating the information between # details about two processing units if line.strip(): if "Model name" == line.rstrip('\n').split(':')[0].strip(): cpu['brand'] = line.rstrip('\n').split(':')[1].strip() if "Processor" == line.rstrip('\n').split(':')[0].strip(): cpu['brand'] = line.rstrip('\n').split(':')[1].strip() if "CPU(s)" == line.rstrip('\n').split(':')[0].strip(): cpu['count'] = line.rstrip('\n').split(':')[1].strip() mem = psutil.virtual_memory().total if sys.platform == "linux" or sys.platform == "linux2": hw_mem = linux_hardware_memory() if hw_mem != 0: mem = hw_mem if distro is None: systeminfo['os'] = str(' '.join(platform.linux_distribution())) else: systeminfo['os'] = str(' '.join(distro.linux_distribution(full_distribution_name=True))) elif sys.platform == "darwin": systeminfo['os'] = "Mac OS %s" % platform.mac_ver()[0] cpu['brand'] = str(systemCommand('sysctl machdep.cpu.brand_string', False)[0]).split(': ')[1] #cpu['count'] = systemCommand('sysctl hw.ncpu') elif sys.platform == "freebsd10" or sys.platform == "freebsd11": systeminfo['os'] = "FreeBSD %s" % platform.release() cpu['brand'] = str(systemCommand('sysctl hw.model', False)[0]).split(': ')[1] cpu['count'] = systemCommand('sysctl hw.ncpu') elif sys.platform == "win32": # https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information if sys.getwindowsversion().build >= 22000: systeminfo['os'] = "{} {}".format(platform.uname()[0], 11) else: systeminfo['os'] = "{} {}".format(platform.uname()[0], platform.uname()[2]) systeminfo['cpu'] = cpu['brand'] systeminfo['cores'] = cpu['count'] systeminfo['memory'] = mem systeminfo['psutil'] = '.'.join(map(str, psutil.version_info)) systeminfo['python_version'] = sys.version systeminfo['platform'] = platform.platform() systeminfo['uptime'] = int(time.time()-psutil.boot_time()) systeminfo['ip_addresses'] = ip_addresses() systeminfo['hostname'] = platform.node() return systeminfo if __name__ == '__main__': Plugin().execute()
SIMPAN PERUBAHAN