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.