it-swarm.com.de

Was kann die Systemüberwachung im oberen Gnome-Panel in Unity ersetzen?

Ich bin es gewohnt, Systemüberwachung im oberen Gnome-Panel zu haben: CPU, Temperatur, Netz, Lüftergeschwindigkeit. (siehe Screenshot unten)

screenshot of Gnome 2 panel showing the system monitor applets

In Unity ist der obere Bereich für Fensternamen und globales Menü gesperrt, daher kann ich keine Panel-Applets hinzufügen. Meine Frage lautet also:

Gibt es eine Möglichkeit, diese Art der Systemüberwachung (immer sichtbar, mit geringem Platzbedarf) in Unity zu ersetzen?

117
tobi

Genau wie der alte Gnom-Indikator: http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more

Hinweis über den Link: Starten Sie nach der Installation System Load Indicator über Dash. Im Gegensatz zu den alten Gnome-Applets können Sie diese Indikatoren auf diese Weise zum Panel hinzufügen.

57
zarej

Ich fand die folgende Frage und Antwort, die das Problem für mich löste. Es enthält eine Liste der Ersetzungen für die alten Applets, die als Anwendungsindikatoren bezeichnet werden. Leider sind noch nicht alle für natty verfügbar, aber ich habe zumindest eine sehr einfache Systemlastüberwachung (Indicator-Sysmonitor) und eine funktionierende Wetteranzeige (Indicator-Weather).

enter image description here

Klicken Sie zum Installieren auf die Schaltfläche:

Install via the software center

44
Leo

Hier ist ein schneller und unsauberer Systemmonitor, den ich zusammen aus Python gehackt habe: menubar

Es verwendet den "System Monitor Indicator" ( hier ), um das Skript aufzurufen, das ich geschrieben habe. Um es zu benutzen:

  1. installiere indicator-sysmonitor. Führen Sie dazu den folgenden Befehl aus:

    Sudo apt-add-repository ppa:alexeftimie/ppa && Sudo apt-get update && Sudo apt-get install indicator-sysmonitor
    
  2. kopieren Sie das folgende Skript in eine Datei namens sysmonitor

  3. mach das Skript ausführbar (chmod +x path-to-file)

  4. klicken Sie auf den Indikator und wählen Sie "Einstellungen". Example showing that

  5. wählen Sie "Diesen Befehl verwenden" und geben Sie den Pfad zur Sysmonitor-Datei an.

hier ist der Code:

#!/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

BEARBEITEN: Wenn Sie die Speichernutzung möchten (als Bericht von "oben"), fügen Sie die Zeilen hinzu

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

Wenn Sie über die Version 2.0 von psutil verfügen, können Sie die vom GNOME-Systemmonitor gemeldete Speichernutzung mit der folgenden Zeile abrufen:

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

Wenn Sie wenig Platz haben und Einheiten für die Nettogeschwindigkeit (b, k, M) bevorzugen, können Sie dies auch verwenden

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)
20

Sie können ein Softwarepaket (. Deb ) von herunterladen und installieren

https://launchpad.net/indicator-sysmonitor/+download hier. Nach der Installation finden Sie es unter Anwendungen> Zubehör> Sysyem Monitor Indicator . In Unity sieht es dann so aus. enter image description here

13
scouser73

Ich übernehme das Problem: https://Gist.github.com/982939

Bildschirmfoto:

enter image description here

5
nortalf

Sie können einen Port des Gnome-Systemmonitors installieren: https://launchpad.net/~indicator-multiload/+archive/stable-daily

4
Bart Vermeulen

Es arbeitet jemand an Hardware-Sensoren für das Indikator-Applet. Siehe Gibt es eine Hardware-Temperatursensoranzeige?

4
Christoph

Es befindet sich nicht im oberen Bereich, aber Sie könnten Conky verwenden.

Ich verwende Conky nicht, aber es gibt einige schlanke Themen, und ich denke, Sie können es immer ganz oben machen. (Obwohl ich nicht weiß, welcher Teil des Bildschirms gut zu verdecken wäre ...)

3
idbrii

Ich denke, das wird vorerst am nächsten kommen. CPU-Monitor

2
DexterP17