Vraag Wat kan systeemmonitoring in het top Gnome Panel in Unity vervangen?


Ik ben gewend om systeemmonitoring te hebben in het top Gnome Panel: CPU, temperatuur, netto, ventilatorsnelheid. (zie screenshot hieronder)

screenshot of Gnome 2 panel showing the system monitor applets

In Unity is het bovenste paneel vergrendeld voor de vensternaam en het globale menu, dus ik kan geen paneelapplets toevoegen. Dus mijn vraag is:

Is er een manier om dit soort systeemmonitoring (altijd zichtbaar, niet veel ruimte innemen) in Unity te vervangen?


116
2018-03-10 06:38


oorsprong




antwoorden:


Precies zoals oude kabouterindicator: http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more

Opmerking van de link: Na de installatie start u System Load Indicator vanuit Dash. In tegenstelling tot de oude kabouter-applets, is dit hoe deze indicatoren aan het paneel kunnen worden toegevoegd.


56
2018-05-03 22:02



Opmerking: indicator-multiload en anderen zijn nu standaard, u hebt de PPA niet nodig. Zie voor tutorials: howtogeek.com/118908/... - Tully


Ik vond de volgende vraag en antwoord die het probleem voor mij oplosten. Het bevat een lijst met vervangingen voor de oude applets, toepassingsindicatoren genoemd. Helaas zijn ze nog niet allemaal beschikbaar voor natty, maar ik heb in ieder geval een zeer eenvoudige systeembelastingmonitor (indicator-sysmonitor) en een weerindicator (weer-indicatorweer) die werkt.

enter image description here

Klik op de knop om te installeren:

Install via the software center


44
2018-04-18 08:35





Hier is een snelle en vuile systeemmonitor die ik samen uit python heb gehackt: menubar

Het maakt gebruik van de "System Monitor Indicator" (hier) om het script te bellen dat ik heb geschreven. Om het te gebruiken:

  1. installeren indicator-sysmonitor. Voer hiervoor de volgende opdracht uit:

    sudo apt-add-repository ppa:alexeftimie/ppa && sudo apt-get update && sudo apt-get install indicator-sysmonitor
    
  2. kopieer het onderstaande script naar een bestand met de naam sysmonitor

  3. maak het script uitvoerbaar (chmod +x path-to-file)

  4. klik op de indicator en kies "Voorkeuren". Example showing that

  5. kies "gebruik dit commando" en geef het het pad naar het sysmonitor-bestand.

hier is de 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: als u geheugengebruik wilt (als rapport door "top"), voegt u de regels toe

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

Als je versie 2.0 van psutil hebt, kun je het geheugengebruik krijgen zoals gerapporteerd door de GNOME-systeemmonitor met de volgende regel:

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

Als je weinig ruimte hebt, en je hebt liever eenheden voor de netto snelheid (b, k, M), kun je dit ook gebruiken

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



bedankt James voor de opmaak en de ontbrekende stap (apt-add-repository). - krumpelstiltskin
Kunt u me vertellen hoe ik het RAM% kon krijgen in plaats van het schijfgebruik? - Vijay
@neo: maak een functie die "/ proc / meminfo" parseert zoals de "getInOut ()" (de velden in meminfo zijn zelfverklarend). Bel dan uw nieuwe functie met makeSample (). Als daar vraag naar is, zal ik de code schrijven en plaatsen. - krumpelstiltskin
@neo: ik heb de regels voor geheugengebruik toegevoegd aan de post. als mem-gebruik alles is wat je wilt, raad ik je aan alle andere regels uit het script te verwijderen, zodat python ze niet hoeft te parsen. - krumpelstiltskin
ik ontdekte hetzelfde en schreef een kort Perl-script dat het netwerkgebruik bewaakt. - Nathan Osman


U kunt een softwarepakket downloaden en installeren (.deb) van

https://launchpad.net/indicator-sysmonitor/+download hier. Na installatie vindt u het onder Toepassingen> Accessoires> Sysyem-monitorindicator en het zal er zo uitzien in Unity; enter image description here


13
2018-04-15 20:50





Mijn kijk op het probleem: https://gist.github.com/982939

screenshot:

enter image description here


5
2018-05-20 14:26





Er is iemand bezig met hardware-sensoren voor indicator-applet. Zien Is er een hardwaretemperatuursensorindicator?


4
2018-04-16 19:41





U kunt een poort van de monitormonitor van het gnome-systeem installeren vanaf: https://launchpad.net/~indicator-multiload/+archive/stable-daily


4
2018-05-09 20:00





Het staat niet in het bovenste paneel, maar je zou kunnen gebruiken Conky.

Ik gebruik Conky niet, maar er zijn een paar kleine thema's die er zijn en ik denk dat je er altijd bovenop kunt komen. (Hoewel ik niet weet welk deel van het scherm goed zou zijn om te dekken ...)


3
2018-04-05 18:51



+1 Ik gebruik Conky hiervoor precies (als vervanging van de applet van een systeemmonitor). Het is uiterst configureerbaar en het is waarschijnlijk dat het enige moeite kost om het gewenste resultaat te behalen. Voor sommige goed uitziende en interessante configs, heb ik er een op gebruikt webupd8.org - belacqua


Ik denk dat dit voor nu het dichtst in de buurt komt. Cpu-monitor


2
2018-03-10 15:59





Ik probeerde een paar applicaties en ik ontdekte dat die op KDE voor mij de beste tool voor systeemmonitor is: ksysguard.

Het bevindt zich in de Ubuntu-standaardrepository's, dus u installeert het gewoon in Software Center.

Zie de vergelijking in deze screenshot. How much processor Gnome System Monitor uses vs KDE System Monitor (ksysguard)

Zoals u kunt zien, is ksysguard een stuk beter.


-1
2018-02-24 07:13



Past dat in het paneel? - Robert Siemer