118 votos

¿Qué se puede reemplazar el sistema de monitoreo en la parte superior Panel de Gnome en Unity?

Estoy acostumbrado a tener el Sistema de monitoreo en la parte superior de Gnome Panel: la CPU, la Temperatura, la Neta, Ventilador de Velocidad. (ver imagen abajo)

screenshot of Gnome 2 panel showing the system monitor applets

En la Unidad, el Panel de control está bloqueado para el nombre de la ventana y el menú global, así que no puedo agregar applets del panel. Así que mi pregunta es:

Es allí una manera de reemplazar este tipo de sistema de monitoreo (siempre visible, no ocupa mucho espacio) en la Unidad?

57voto

zarej Puntos 534

Exactamente como el viejo gnome indicador: http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more

Nota desde el link: una Vez instalado, inicie la Carga del Sistema Indicador de Tablero. A diferencia del antiguo gnome applets, esta es la forma de agregar los indicadores en el panel.

44voto

PRINCESS FLUFF Puntos 2072

He encontrado la siguiente pregunta y respuesta que resuelve el problema para mí. Contiene una lista de reemplazos para la edad de los applets de llamada de la aplicación de los indicadores. Por desgracia, no todos ellos están disponibles para natty, pero al menos tengo una muy básica de carga del sistema monitor (indicador-sysmonitor) y un clima indicador (indicador-tiempo) de trabajo.

enter image description here

Haga clic en el botón instalar:

Install via the software center

20voto

krumpelstiltskin Puntos 712

Aquí está un rápido y sucio monitor de sistema que me hackeado de python: menubar

Utiliza el "Sistema Indicador del Monitor" (aquí) para llamar al script que escribí. Para usarlo:

  1. instale indicator-sysmonitor. Para ello, ejecute el siguiente comando:

    sudo apt-add-repository ppa:alexeftimie/ppa && sudo apt-get update && sudo apt-get install indicator-sysmonitor
    
  2. copie la secuencia de comandos siguiente en un archivo llamado sysmonitor

  3. hacer el script ejecutable (chmod +x path-to-file)

  4. haga clic en el indicador y seleccione "Preferencias". Example showing that

  5. elige "usar este comando" y darle la ruta de acceso a la sysmonitor archivo.

aquí está el código:

#!/usr/bin/python

import re
import sys
import time
import psutil





#Functions:_    __    __    __    __    __    __    __    __    __    __    __
#__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \_



#interface |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
net_re = re.compile(r"\s*\S+:\s+(\d+)\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+(\d+)\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+\d+\s+")

def getInOut():
  """
  Get a readout of bytes in and out from /proc/net/dev.
  """

  netfile = "/proc/net/dev"

  try: f = open(netfile)
  except:
    sys.stderr.write("ERROR: can't open "+netfile+".\n")
    sys.exit(2)

  f.readline()    #Burn the top header line.
  f.readline()    #Burn the second header line.

  inb = 0
  outb = 0
  for line in f:
    m = net_re.match(line)
    inb += int(m.group(1))
    outb += int(m.group(2))
  f.close()

  return (inb,outb)



def sampleNet():
  """
  Get a sample of I/O from the network interfaces.
  """
  return makeSample(getInOut)


def makeSample(function):
  inlist = list()
  outlist = list()

  (inbytes, outbytes) = function()
  inlist.append(inbytes)
  outlist.append(outbytes)
  time.sleep(1)

  (inbytes, outbytes) = function()
  inlist.append(inbytes)
  outlist.append(outbytes)

  return (inlist[1] - inlist[0], outlist[1] - outlist[0])



def diskstatWrapper():
  """
  Wrapper for the diskstats_parse function that returns just the in and out.
  """
  ds = diskstats_parse("sda")
  return (ds["sda"]["writes"], ds["sda"]["reads"])



def sampleDisk():
  """
  Get a sample of I/O from the disk.
  """
  return makeSample(diskstatWrapper)





def diskstats_parse(dev=None):
    """
    I found this on stackoverflow.
    (http://stackoverflow.com/questions/3329165/python-library-for-monitoring-proc-diskstats)
    """
    file_path = '/proc/diskstats'
    result = {}

    # ref: http://lxr.osuosl.org/source/Documentation/iostats.txt
    columns_disk = ['m', 'mm', 'dev', 'reads', 'rd_mrg', 'rd_sectors',
                    'ms_reading', 'writes', 'wr_mrg', 'wr_sectors',
                    'ms_writing', 'cur_ios', 'ms_doing_io', 'ms_weighted']

    columns_partition = ['m', 'mm', 'dev', 'reads', 'rd_sectors', 'writes', 'wr_sectors']

    lines = open(file_path, 'r').readlines()
    for line in lines:
        if line == '': continue
        split = line.split()
        if len(split) != len(columns_disk) and len(split) != len(columns_partition):
            # No match
            continue

        data = dict(zip(columns_disk, split))
        if dev != None and dev != data['dev']:
            continue
        for key in data:
            if key != 'dev':
                data[key] = int(data[key])
        result[data['dev']] = data

    return result





#MAIN:    __    __    __    __    __    __    __    __    __    __    __    __
#__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \_




(indiff, outdiff) = sampleNet()
outstr = ""
outstr += "cpu: "+str(int(psutil.cpu_percent()))+"%\t"
outstr += "net: "+str(indiff/1000)+"|"+str(outdiff/1000)+" K/s\t"

(diskin, diskout) = sampleDisk()
outstr += "disk: "
if(diskin):
  outstr += "+"
else:
  outstr += "o"
outstr += "|"
if(diskout):
  outstr += "+"
else:
  outstr += "o"

print outstr

EDIT: si desea que el uso de la memoria (como el informe "top") agregar las líneas

memperc = int(100*float(psutil.used_phymem())/float(psutil.TOTAL_PHYMEM))
outstr += "mem: "+str(memperc)+"%\t"

Si usted tiene la versión 2.0 de psutil entonces usted puede obtener el uso de la memoria según lo informado por el Monitor del Sistema de GNOME con la siguiente línea:

memperc = int(100*float(psutil.used_phymem()-psutil.cached_phymem())/float(psutil.TOTAL_PHYMEM))

Si tienes poco espacio, y se prefieren las unidades de la red de la velocidad (b, k, M) que usted puede utilizar esto como bien

def withUnit(v):
    if v<1024:
      return "%03d" % v+"b";
    if v<1024**2:
      s= ("%f" % (float(v)/1024))[:3];
      if s[-1]=='.':
         s=s[:-1]
      return s +"k";

    return ("%f" % (float(v)/(1024**2)))[:3] +"M";


(indiff, outdiff) = sampleNet()
outstr = ""
outstr += "c"+ "%02d" % int(psutil.cpu_percent())+" "
outstr += "m"+ "%02d" % int((100*float(psutil.used_phymem())/float(psutil.TOTAL_PHYMEM)))+" "

outstr += "d"+withUnit(indiff)+" u"+withUnit(outdiff)

13voto

geoff Puntos 126

Usted puede descargar e instalar un paquete de software (.deb) a partir de

https://launchpad.net/indicator-sysmonitor/+descargar aquí. Una vez instalado, usted encontrará en Aplicaciones > Accesorios > Sysyem Indicador del Monitor , y tendrá un aspecto como este en la Unidad; enter image description here

5voto

dictionary00 Puntos 83

Mi opinión sobre el problema: https://gist.github.com/982939

Captura de pantalla:

enter image description here

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: