Unity의 최상위 Gnome 패널에서 시스템 모니터링을 대체 할 수있는 것은 무엇입니까?


117

나는 그놈 패널에서 CPU, 온도, 그물, 팬 속도와 같은 시스템 모니터링을 사용했습니다. (아래 스크린 샷 참조)

시스템 모니터 애플릿을 보여주는 Gnome 2 패널의 스크린 샷

Unity에서는 창 이름과 전역 메뉴에 대해 상단 패널이 잠겨 있으므로 패널 애플릿을 추가 할 수 없습니다. 그래서 내 질문은 :

유니티에서 이런 종류의 시스템 모니터링을 대체 할 수있는 방법이 있습니까?

답변:


57

구 그놈 표시기와 정확히 동일합니다 : http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more

링크에서 참고 : 일단 설치되면 Dash에서 시스템로드 표시기를 시작하십시오. 이전 그놈 애플릿과 달리이 표시기를 패널에 추가하는 방법입니다.


참고 : 인디케이터 멀티로드 및 기타는 이제 표준이며 PPA가 필요하지 않습니다. 튜토리얼은 howtogeek.com/118908/…을
Tully

44

나는 나에게 문제를 해결 한 다음과 같은 질문과 답변을 발견했다. 여기에는 응용 프로그램 표시기라고하는 이전 애플릿의 대체 목록이 포함되어 있습니다. 불행히도 이들 모두를 아직 사용할 수는 없지만 최소한 기본 시스템 부하 모니터 (표시기-sysmonitor)와 날씨 표시기 (표시기 날씨)가 작동합니다.

여기에 이미지 설명을 입력하십시오

설치하려면 버튼을 클릭하십시오 :

소프트웨어 센터를 통해 설치


20

다음은 파이썬에서 함께 해킹 한 빠르고 더러운 시스템 모니터입니다. 메뉴 바

"시스템 모니터 표시기"( here )를 사용하여 내가 작성한 스크립트를 호출합니다. 그것을 사용하려면 :

  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. "use this command"를 선택하고 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

편집 : 당신이 메모리 사용을 원한다면 ( "top"의 보고서로) 줄을 추가하십시오

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

psutil 버전 2.0을 사용하는 경우 다음 줄을 사용하여 그놈 시스템 모니터에서보고 한 메모리 사용량을 얻을 수 있습니다.

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)에 대해 James에게 감사합니다.
krumpelstiltskin

디스크 사용량 대신 RAM %를 얻는 방법을 알려주시겠습니까?
Vijay

2
@neo : "/ get / meminfo"를 "getInOut ()"(meminfo의 필드는 자체 설명)과 매우 유사하게 구문 분석하는 함수를 만듭니다. 그런 다음 makeSample ()을 사용하여 새 함수를 호출하십시오. 이에 대한 요구가 있으면 코드를 작성하고 게시합니다.
krumpelstiltskin

1
@neo : 게시물에 메모리 사용량에 대한 줄을 추가했습니다. mem 사용법이 마음에 든다면 스크립트에서 다른 모든 줄을 제거하여 파이썬이 구문 분석하지 않아도되도록 제안합니다.
krumpelstiltskin

1
나는 똑같은 것을 발견 하고 네트워크 활용을 모니터링하는 짧은 Perl 스크립트를 작성했습니다.
Nathan Osman

13

소프트웨어 패키지 ( .deb )를 다운로드하여 설치할 수 있습니다

https://launchpad.net/indicator-sysmonitor/+ 여기에서 다운로드하십시오. 설치되면 응용 프로그램> 액세서리> Sysyem 모니터 표시기 에서 찾을 수 있으며 Unity에서는 다음과 같이 표시 됩니다. 여기에 이미지 설명을 입력하십시오





3

상단 패널에는 없지만 Conky를 사용할 수 있습니다 .

나는 Conky를 사용하지 않지만 거기에는 슬림 한 테마가 있으며 항상 맨 위에 만들 수 있다고 생각합니다. (화면의 어떤 부분을 다루는 것이 좋을지 모르겠지만 ...)


+1 이것을 위해 Conky를 사용하고 있습니다 (시스템 모니터 애플릿 교체로). 매우 구성 가능하며 원하는 결과를 얻으려면 약간의 작업이 필요할 수 있습니다. 보기 좋고 흥미로운 설정을 위해 webupd8.org에서
belacqua


-1

몇 가지 응용 프로그램을 시도했는데 KDE의 응용 프로그램이 최고의 시스템 모니터 도구 인 ksysguard라는 것을 알았습니다.

Ubuntu 표준 리포지토리에 있으므로 Software Center에 설치하면됩니다.

이 스크린 샷에서 비교를 참조하십시오. 그놈 시스템 모니터가 KDE 시스템 모니터 (ksysguard)와 비교하여 사용하는 프로세서

보시다시피 ksysguard가 훨씬 좋습니다.


패널에 맞습니까?
Robert Siemer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.