zephir.monitor.agent.uptime

Package zephir :: Package monitor :: Package agent :: Module uptime |
[frames] | no frames]

# Source Code for Module zephir.monitor.agent.uptime

     1  # -*- coding: UTF-8 -*-
     2
     3  """Informations sur l'utilisation du système
     4  """
     5  import commands
     6  import os
     7
     8  from agent import Agent
     9  from zephir.monitor.utils import list_to_table
    10
    11 -class Uptime(Agent):
    12      """Infos cpu
    13      """
    14 -    def __init__(self):
    15          self.name="uptime"
    16          self.description="""Informations d'utilisation système"""
    17          Agent.__init__(self)
    18          # traitements (à restructurer si possible)
    19          self.contenu_xml = self._dump_xml()
    20          self.contenu_html= self._dump_html()
    21          # écriture dans les fichiers
    22          self.write_html()
    23          self.write_xml()
    24
    25 -    def _uptime(self):
    26          """Récupère une sortie système
    27          """
    28          exec_cmd = "/usr/bin/uptime"
    29          s = commands.getoutput(exec_cmd)
    30          lignes = s.splitlines()
    31          # On parse la sortie standard de la commande
    32          ligne = lignes[0]
    33          # nombre d'utilisateurs
    34          champs=ligne[:ligne.index('user')]
    35          users=int(champs[champs.rindex(',')+1:])
    36          # on récupère le temps d'uptime
    37          uptime_str = champs[:champs.rindex(',')]
    38          uptime_str = uptime_str[champs.index('up')+2:].strip()
    39
    40          return uptime_str,users
    41
    42
    43 -    def _dump_xml(self):
    44          """sortie en xml
    45          """
    46
    47          UPT_DATA = """<variable name="uptime" value="%s"/>
    48          <variable name="utilisateurs" value="%s"/>"""
    49
    50          return UPT_DATA % (self._uptime())
    51
    52 -    def _dump_html(self):
    53          """sortie en html
    54          """
    55          uptime,users = self._uptime()
    56
    57          UPT_HTM = """<ul>
    58          <li>serveur en marche depuis : %s</li>
    59          <li>nombre d'utilisateurs actuel : %s</li>
    60          </ul>"""
    61
    62          return UPT_HTM % (uptime, users)
    63
    64
    65  if __name__ == "__main__":
    66      Uptime()
    67      # print res._dump_xml()
    68