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


Ich bin es gewohnt, Systemüberwachung in der oberen Gnome-Panel: CPU, Temperatur, Net, Lüftergeschwindigkeit. (siehe Screenshot unten)

screenshot of Gnome 2 panel showing the system monitor applets

In Unity ist das obere Bedienfeld für den Fensternamen und das globale Menü gesperrt, sodass 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?


116
2018-03-10 06:38


Ursprung




Antworten:


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

Hinweis vom Link: Nach der Installation starten Sie die Systemlastanzeige von Dash. Im Gegensatz zu den alten Gnome-Applets können Sie so diese Indikatoren zum Panel hinzufügen.


56
2018-05-03 22:02



Hinweis: Indikator-Multiload und andere sind jetzt Standard Sie brauchen nicht die PPA. Für Tutorials siehe: howtogeek.com/118908/ ... - Tully


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.

enter image description here

Klicken Sie auf die Schaltfläche zum Installieren:

Install via the software center


44
2018-04-18 08:35





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

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

  1. Installieren 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. mache 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

EDIT: Wenn Sie Speichernutzung (als Bericht von "oben") möchten, 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 Speicherauslastung mit der folgenden Zeile ermitteln:

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)

20
2018-04-28 00:30



Danke James für die Formatierung und den fehlenden Schritt (apt-add-repository). - krumpelstiltskin
Könnten Sie mir bitte sagen, wie ich den RAM% anstelle der Festplattennutzung bekommen könnte? - Vijay
@neo: Erstelle eine Funktion, die "/ proc / meminfo" ähnlich wie "getInOut ()" analysiert (die Felder in meminfo sind selbst erklärend). Dann rufe deine neue Funktion mit makeSample () auf. Wenn Bedarf besteht, schreibe und poste ich den Code. - krumpelstiltskin
@neo: Ich habe dem Beitrag die Zeilen für die Speichernutzung hinzugefügt. Wenn die Verwendung von Mem alles ist, was Sie wollen, schlage ich vor, dass Sie alle anderen Zeilen aus dem Skript entfernen, damit Python sie nicht analysieren muss. - krumpelstiltskin
Ich entdeckte das gleiche und schrieb ein kurzes Perl-Skript, das die Netzwerkauslastung überwacht. - Nathan Osman


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

https://launchpad.net/indicator-sysmonitor/+download Hier. Einmal installiert, finden Sie es unter Anwendungen> Zubehör> Sysyem Monitor Indicator und es wird so in Einheit aussehen; enter image description here


13
2018-04-15 20:50





Ich nehme das Problem an: https://gist.github.com/982939

Bildschirmfoto:

enter image description here


5
2018-05-20 14:26





Es gibt jemanden, der an Hardware-Sensoren für Indikator-Applet arbeitet. Sehen Gibt es einen Hardware-Temperatursensor?


4
2018-04-16 19:41





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


4
2018-05-09 20:00





Es ist nicht in der oberen Leiste, aber Sie könnten verwenden Conky.

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


3
2018-04-05 18:51



+1 Ich verwende Conky genau dafür (als Systemmonitor-Applet-Ersatz). Es ist extrem konfigurierbar und es ist wahrscheinlich, dass es einige Arbeit braucht, um das gewünschte Ergebnis zu erzielen. Für einige gut aussehende und interessante Konfigurationen habe ich eine vorgeschlagene verwendet webupd8.org - belacqua


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


2
2018-03-10 15:59





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, Sie müssen es also nur im Software Center installieren.

Sehen Sie den Vergleich in diesem Screenshot. How much processor Gnome System Monitor uses vs KDE System Monitor (ksysguard)

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


-1
2018-02-24 07:13



Passt das in das Panel? - Robert Siemer