Question Que peut remplacer la surveillance du système dans le haut panneau Gnome dans Unity?


Je suis habitué à la surveillance du système dans le panneau Gnome supérieur: CPU, température, réseau, vitesse du ventilateur. (voir capture d'écran ci-dessous)

screenshot of Gnome 2 panel showing the system monitor applets

Dans Unity, le panneau supérieur est verrouillé pour le nom de la fenêtre et le menu global. Je ne peux donc pas ajouter d'applets de panneau. Donc ma question est:

Est-il possible de remplacer ce type de surveillance du système (toujours visible, ne prenant pas beaucoup de place) dans Unity?


116
2018-03-10 06:38


origine




Réponses:


Exactement comme l'ancien indicateur de gnome: http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more

Note du lien: Une fois installé, lancez l'indicateur de charge système depuis Dash. Contrairement aux anciennes applets gnome, il s'agit d'ajouter ces indicateurs au panneau.


56
2018-05-03 22:02



Remarque: l'indicateur-multiload et d'autres sont maintenant standard, vous n'avez pas besoin du PPA. Pour les tutoriels voir: howtogeek.com/118908/… - Tully


J'ai trouvé la question suivante et la réponse qui a résolu le problème pour moi. Il contient une liste de remplacements pour les anciennes applets appelées indicateurs d'application. Malheureusement, tous ne sont pas encore disponibles pour natty, mais au moins j'ai un moniteur de charge système (indicator-sysmonitor) très basique et un indicateur météo (indicateur-météo) qui fonctionnent.

enter image description here

Cliquez sur le bouton pour installer:

Install via the software center


44
2018-04-18 08:35





Voici un moniteur système rapide et sale que j'ai piraté en python: menubar

Il utilise l'indicateur "System Monitor" (ici) d'appeler le script que j'ai écrit. Pour l'utiliser:

  1. installer indicator-sysmonitor. Pour ce faire, exécutez la commande suivante:

    sudo apt-add-repository ppa:alexeftimie/ppa && sudo apt-get update && sudo apt-get install indicator-sysmonitor
    
  2. copier le script ci-dessous dans un fichier appelé sysmonitor

  3. rendre le script exécutable (chmod +x path-to-file)

  4. Cliquez sur l'indicateur et choisissez "Préférences". Example showing that

  5. choisissez "utiliser cette commande" et donnez-lui le chemin d'accès au fichier sysmonitor.

voici le 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: si vous voulez utiliser la mémoire (comme rapport par "top") ajoutez les lignes

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

Si vous avez la version 2.0 de psutil, vous pouvez obtenir l'utilisation de la mémoire telle que signalée par le Moniteur système GNOME avec la ligne suivante:

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

Si vous avez peu d'espace et que vous préférez avoir des unités pour la vitesse nette (b, k, M), vous pouvez également l'utiliser.

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



merci James pour le formatage et l'étape manquante (apt-add-repository). - krumpelstiltskin
Pourriez-vous s'il vous plaît me dire comment je pourrais obtenir le RAM% au lieu de l'utilisation de disque? - Vijay
@neo: crée une fonction qui analyse "/ proc / meminfo" un peu comme celle appelée "getInOut ()" (les champs de meminfo sont explicatifs). Ensuite, appelez votre nouvelle fonction avec makeSample (). S'il y a une demande pour cela, je vais écrire et poster le code. - krumpelstiltskin
@neo: j'ai ajouté les lignes pour l'utilisation de la mémoire à la publication. Si vous ne voulez que l'utilisation de mem, je vous suggère de supprimer toutes les autres lignes du script pour que python n'ait pas à les analyser. - krumpelstiltskin
J'ai découvert la même chose et a écrit un court script Perl qui surveille l'utilisation du réseau. - Nathan Osman


Vous pouvez télécharger et installer un logiciel (.deb) de

https://launchpad.net/indicator-sysmonitor/+download ici. Une fois installé, vous le trouverez sous Applications> Accessoires> Indicateur Sysyem Monitor et cela ressemblera à ceci dans l'Unité; enter image description here


13
2018-04-15 20:50





Mon point de vue sur le problème: https://gist.github.com/982939

Capture d'écran:

enter image description here


5
2018-05-20 14:26





Il y a quelqu'un qui travaille sur des capteurs matériels pour l'applet d'indicateur. Voir Existe-t-il un indicateur de capteur de température matériel?


4
2018-04-16 19:41





Vous pouvez installer un port de l'indicateur de surveillance du système gnome à partir de: https://launchpad.net/~indicator-multiload/+archive/stable-daily


4
2018-05-09 20:00





Ce n'est pas dans le panneau supérieur, mais vous pouvez utiliser Conky.

Je n'utilise pas Conky, mais il y a quelques thèmes minces et je pense que vous pouvez toujours le faire en haut. (Bien que je ne sache pas quelle partie de l'écran serait bien à couvrir ...)


3
2018-04-05 18:51



+1 J'ai utilisé Conky pour cela exactement (comme remplacement d'applet du moniteur système). Il est extrêmement configurable et il faudra probablement du travail pour obtenir le résultat souhaité. Pour certaines configurations intéressantes et intéressantes, j'en ai utilisé une proposée sur webupd8.org - belacqua


Je pense que ce sera la chose la plus proche pour le moment. Moniteur cpu


2
2018-03-10 15:59





J'ai essayé quelques applications et j'ai trouvé que celle de KDE était pour moi le meilleur outil de surveillance du système: ksysguard.

Il se trouve dans les référentiels standards Ubuntu, vous devez donc l'installer dans Software Center.

Voir la comparaison dans cette capture d'écran. How much processor Gnome System Monitor uses vs KDE System Monitor (ksysguard)

Comme vous pouvez le voir, ksysguard est bien meilleur.


-1
2018-02-24 07:13



Est-ce que cela correspond au panneau? - Robert Siemer