AnonSec Shell
Server IP : 92.204.138.22  /  Your IP : 18.227.102.127
Web Server : Apache
System : Linux ns1009439.ip-92-204-138.us 4.18.0-553.8.1.el8_10.x86_64 #1 SMP Tue Jul 2 07:26:33 EDT 2024 x86_64
User : internationaljou ( 1019)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/internationaljou/public_html/admin/js/BROKY_ADMIN/alfasymlink/root/lib/panopta-agent/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/internationaljou/public_html/admin/js/BROKY_ADMIN/alfasymlink/root/lib/panopta-agent/plugins/uptime.py
import os
try: import json
except ImportError: import simplejson as json
import agent_util
import datetime
import time
import sys
from agent_util import float

class UptimePlugin(agent_util.Plugin):
    textkey = "uptime"
    label = "Machine Uptime"
    platform = sys.platform

    @classmethod
    def get_metadata(self, config):

        status = agent_util.SUPPORTED
        msg = None

        if 'sunos' in self.platform:
            psr = agent_util.which("psrinfo", exc=True)
            if not psr:
                status = agent_util.MISCONFIGURED
                msg = "Unable to collect uptime data, please make sure psrinfo is installed."
        else:
            who = agent_util.which("who", exc=True)
            if not who:
                status = agent_util.MISCONFIGURED
                msg = "Unable to collect uptime data, please make sure Who is installed."

        metadata = {
            "time_since_last_boot": {
                "label": "Time since last boot",
                "options": None,
                "status": status,
                "error_message": msg,
                "unit": "minutes"
            },
        }
        return metadata

    def check(self, textkey, data, config):
        if textkey == 'time_since_last_boot':
            lb = ''
            if 'sunos' in self.platform:
                psrinfo = agent_util.which("psrinfo", exc=True)
                retcode, output = agent_util.execute_command(psrinfo)
                lb = output.strip()
                lb = lb.split()[-2:]
                lb = ' '.join(lb)
                lb = datetime.datetime.strptime(lb, "%m/%d/%Y %H:%M:%S")

            elif "darwin" in self.platform:
                sysctl = agent_util.which("sysctl", exc=True)
                retcode, output = agent_util.execute_command("%s -n kern.boottime" % sysctl)
                fields = output.strip().split()
                return time.time() - int(fields[3].strip(","))

            elif 'aix' in self.platform:
                uptime = agent_util.which("uptime", exc=True)
                retcode, output = agent_util.execute_command(uptime)
                self.log.debug("####\n%s" % str(output))
                lb = re.sub(',|days|day','',str(output))
                self.log.debug("####\n%s" % str(lb))
                if "day" in output:
                    if "min" in output:
                        lb = re.split(' ',str(lb))[4:7]
                        lb = datetime.timedelta(days=int(lb[0]),minutes=int(lb[-1]))
                    elif "hr" in output:
                        lb = re.split(' ',str(lb))[4:7]
                        lb = datetime.timedelta(days=int(lb[0]),hours=int(lb[-1]))
                    else:
                        lb = re.split(' |:',str(lb))[5:10]
                        lb = datetime.timedelta(days=int(lb[0]),hours=int(lb[-2]),minutes=int(lb[-1]))

                else:
                    if "min" in output:
                        lb = re.split(' ',str(lb))[4]
                        lb = datetime.timedelta(minutes=int(lb))
                    elif "hr" in output:
                        lb = re.split(' ',str(lb))[4]
                        lb = datetime.timedelta(hours=int(lb))
                    else:
                        return 60

            else:
                uptime = open("/proc/uptime").read().split()[0]
                return int(float(uptime))

            ct = datetime.datetime.now()
            diff = ct - lb
            return int(diff.total_seconds())

        return 0



Anon7 - 2022
AnonSec Team