Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
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