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

116

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

In Unity ist der obere Bereich für den Fensternamen und das globale Menü gesperrt, so dass ich keine Panel-Applets hinzufügen kann. Also meine Frage ist:

Gibt es eine Möglichkeit, diese Art der Systemüberwachung (immer sichtbar, ohne viel Platz) in Unity zu ersetzen?

    
tobi 10.03.2011, 07:38
quelle

10 Antworten

56

Genau wie der alte Gnome-Indikator: Pfandrecht

Hinweis von der Verknüpfung: Nach der Installation starten Sie die Systemladeanzeige von Dash. Im Gegensatz zu den alten gnome-Applets fügen Sie so diese Indikatoren zum Panel hinzu.

    
zarej 04.05.2011, 00:02
quelle
44

Ich habe die folgende Frage und Antwort gefunden, die das Problem für mich gelöst hat. Es enthält eine Liste von Ersetzungen für die alten Applets, die Anwendungsindikatoren genannt werden. Leider sind noch nicht alle für natty verfügbar, aber zumindest habe ich einen sehr einfachen Systemlastmonitor (Indikator-sysmonitor) und einen Wetterindikator (Indikator-Wetter) im Einsatz.

Klicken Sie auf die Schaltfläche zum Installieren:

Leo 18.04.2011 10:35
quelle
20

Hier ist ein schneller und dreckiger Systemmonitor, den ich aus Python gehackt habe:

Es verwendet den "System Monitor Indicator" ( hier ), um das von mir geschriebene Skript aufzurufen. Um es zu benutzen:

  1. install 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. macht das Skript ausführbar ( chmod +x path-to-file )

  4. Klicken Sie auf den Indikator und wählen Sie "Einstellungen".

  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

EDIT: Wenn Sie die Speichernutzung (als Bericht von "top") wollen, fügen Sie die Zeilen

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

Wenn Sie Version 2.0 von psutil haben, können Sie die vom GNOME-Systemmonitor gemeldete Speicherauslastung 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 lieber Einheiten für die Nettogeschwindigkeit (b, k, M) haben, 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)
    
krumpelstiltskin 28.04.2011 02:30
quelle
13

Sie können ein Softwarepaket ( .deb ) von

herunterladen und installieren

Pfandrecht hier. Einmal installiert, finden Sie es unter Anwendungen & gt; Zubehör & gt; Sysyem Monitor Indicator und es wird in Unity so aussehen;

    
scouser73 15.04.2011 22:50
quelle
5

Ich nehme das Problem an: Pfandrecht

Screenshot:

    
nortalf 20.05.2011 16:26
quelle
4

Es arbeitet jemand an Hardware-Sensoren für Indikator-Applet. Siehe Gibt es einen Hardware-Temperatursensor? >

    
Christoph 16.04.2011 21:41
quelle
4

Sie können einen Port des Gnome-Systemmonitorindikators installieren von: Pfandrecht

    
Bart Vermeulen 09.05.2011 22:00
quelle
3

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

Ich benutze Conky nicht, aber es gibt einige dünne Themen da draußen, und ich denke, du kannst es immer an der Spitze machen. (Obwohl ich nicht weiß, welchen Teil des Bildschirms wäre gut zu decken ...)

    
idbrii 05.04.2011 20:51
quelle
2

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

    
DexterP17 10.03.2011 16:59
quelle
-1

Ich habe ein paar Anwendungen ausprobiert und festgestellt, dass das auf KDE für mich das beste Systemmonitor-Tool ist: ksysguard.

Es befindet sich in den Ubuntu-Standard-Repositories, also installieren Sie es einfach im Software Center.

Siehe den Vergleich in diesem Screenshot.

Wie Sie sehen können, ist ksysguard viel besser.

    
conualfy 24.02.2013 08:13
quelle