Що може замінити системний моніторинг у верхній панелі Gnome в Unity?


117

Я звик до моніторингу системи на верхній панелі Gnome: процесор, температура, чистий, швидкість вентилятора. (див. скріншот нижче)

скріншот панелі Gnome 2, що показує аплети системного монітора

У Unity верхня панель заблокована для назви вікна та глобального меню, тому я не можу додавати панелі аплети. Отже, моє запитання:

Чи є спосіб замінити такий тип моніторингу системи (завжди видно, займаючи не так багато місця) в Unity?

Відповіді:


57

Так само, як і старий показник гнома: http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more

Примітка за посиланням: Після встановлення запустіть показник завантаження системи від Dash. На відміну від старих аплетів gnome, це те, як додати ці показники до панелі.


Примітка: індикатор-мульти завантаження та інші тепер стандартні, вам не потрібно PPA. Для навчальних посібників см: howtogeek.com/118908 / ...
Таллі

44

Я знайшов наступне питання та відповідь, який вирішив проблему для мене. Він містить перелік замін для старих аплетів, що називаються індикаторами застосування. На жаль, ще не всі вони доступні для natty, але принаймні я отримав дуже базовий монітор завантаження системи (індикатор-системонітор) та показник погоди (індикатор-погода).

введіть тут опис зображення

Натисніть кнопку, щоб встановити:

Встановіть через програмний центр


20

Ось швидкий і брудний системний монітор, який я зламав разом із python: menubar

Він використовує "Індикатор системного монітора" ( тут ) для виклику написаного мною сценарію. Щоб використовувати його:

  1. встановити indicator-sysmonitor. Для цього запустіть таку команду:

    sudo apt-add-repository ppa:alexeftimie/ppa && sudo apt-get update && sudo apt-get install indicator-sysmonitor
    
  2. скопіюйте нижче скрипт у файл, який називається sysmonitor

  3. зробити сценарій виконуваним ( chmod +x path-to-file)

  4. натисніть на індикатор і виберіть "Налаштування". Приклад, що показує це

  5. виберіть "використовувати цю команду" та надайте їй шлях до файлу sysmonitor.

ось код:

#!/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: якщо ви хочете використовувати пам'ять (як звіт "вгорі"), додайте рядки

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

Якщо у вас версія 2.0 psutil, ви можете отримати використання пам'яті, як повідомляється GNOME System Monitor, у наступному рядку:

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

Якщо у вас мало місця, і ви віддаєте перевагу мати одиниці для чистої швидкості (b, k, M), ви також можете використовувати це

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)

дякую Джеймсу за форматування та пропущений крок (apt-add-repository).
krumpelstiltskin

Скажіть, будь ласка, як я можу отримати RAM% замість використання диска?
Віджай

2
@neo: зробіть функцію, яка аналізує "/ proc / meminfo" так, як називається "getInOut ()" (поля в meminfo самі пояснюють). Потім зателефонуйте на нову функцію за допомогою makeSample (). Якщо є попит на це, я напишу і відправлю код.
krumpelstiltskin

1
@neo: я додав рядки для використання пам'яті до публікації. якщо використання пам’яті все, що вам потрібно, я пропоную вам видалити всі інші рядки зі сценарію, щоб python не потребував їх розбору.
krumpelstiltskin

1
Я виявив те саме і написав короткий сценарій Perl, який відстежує використання мережі.
Натан Осман

13

Ви можете завантажити та встановити програмний пакет ( .deb ) з

https://launchpad.net/indicator-sysmonitor/+download тут. Після встановлення ви знайдете його в розділі Програми> Аксесуари> Індикатор монітора Sysyem, і він буде виглядати приблизно так у Unity; введіть тут опис зображення





3

Це не на верхній панелі, але ви можете використовувати Conky .

Я не використовую Conky, але там є деякі тонкі теми, і я думаю, що ти завжди можеш зробити це зверху. (Хоча я не знаю, яку частину екрану було б добре висвітлити ...)


+1 Я саме для цього використовував Conky (як заміну аплету системного монітора). Це надзвичайно настроюється, і, ймовірно, знадобиться деяка робота, щоб отримати бажаний результат. Для деяких гарних та цікавих конфігурацій я використовував запропонований веб-сайт webupd8.org
belacqua


-1

Я спробував кілька додатків, і виявив, що той, що знаходиться в KDE, є для мене найкращим інструментом моніторингу системи: ksysguard.

Він знаходиться в стандартних сховищах Ubuntu, тому просто встановіть його в Software Center.

Дивіться порівняння на цьому скріншоті. Скільки використовує процесор Gnome System Monitor проти KDE System Monitor (ksysguard)

Як бачите, ksysguard набагато краще.


Чи відповідає це панелі?
Роберт Сімер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.