Sen sysmon denemek isteyebilirsiniz . Bakışlar kadar şık olmasa da kullanımı çok basittir ve kullanımı kolaydır.
Kirlenmek ve python içinde küçük bir komut dosyası yapmak istiyorsanız, başlamak için Python ile sistem izlemenin temellerini burada bulabilirsiniz.
psutil
Çoğu şeyi izlemek için çağrılan harici bir modüle ihtiyacınız olacak . Kaynaktan bina yapmak yerine harici bir modül yükleyici kullanmak en kolay yoldur.
Not: Bu örnekler Python 2.7'de yazılmıştır.
sudo apt-get install pip
sudo pip install psutil
Artık modülleri kurduğumuz için kodlamaya başlayabiliriz.
İlk önce adlı bir dosya oluşturun usage.py
.
gedit ~/usage.py
İçe aktarmayla başla psutil
import psutil
Ardından, CPU çekirdeğinizin çalıştığı yüzdeyi izlemek için bir işlev oluşturun.
def cpu_perc():
cpu_perc = psutil.cpu_percent(interval=1, percpu=True)
for i in range(len(cpu_perc)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
Şunu biraz kıralım mı?
İlk satır, cpu_num = psutil.cpu_percent(interval=1, percpu=True)
CPU'nuzdaki çekirdeklerin çalıştığı yüzdeyi bulur ve adı verilen bir listeye atar cpu_perc
.
Bu döngü tam burada
for i in range(len(cpu_num)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
CPU çekirdeğinizin her birinin geçerli yüzdesini yazdıran bir for döngüsüdür.
RAM kullanımını ekleyelim.
Adlı bir işlev oluşturun ram_perc
.
def ram_perc():
mem = psutil.virtual_memory()
mem_perc = mem.percent
print "RAM: ", mem_perc, "%"
psutil.virtual_memory
Bilgisayarınızdaki RAM hakkında farklı bilgiler içeren bir veri seti verir.
Ardından, ağınızla ilgili bazı gerçekleri ekleyebilirsiniz.
def net():
net = psutil.net_io_counters()
mbytes_sent = float(net.bytes_sent) / 1048576
mbytes_recv = float(net.bytes_recv) / 1048576
print "MB sent: ", mbytes_sent
print "MB received: ", mbytes_recv
Yana psutil.net_io_counters()
sadece bize bayt gönderilen ve alınan paketler hakkında bilgi verir, bazı dönüştürme gerekliydi.
Değişim alanı hakkında biraz bilgi edinmek için bu işlevi ekleyin.
def swap_perc():
swap = psutil.swap_memory()
swap_perc = swap.percent
Bu oldukça basit.
Sıcaklık yapmak zor, bu nedenle donanımınızla neyin işe yarayacağını bulmak için kendi araştırmalarınızı yapmanız gerekebilir. Belirli bir dosyanın içeriğini görüntülemek zorunda kalacaksınız.
Disk kullanımı sıcaklıktan çok daha kolaydır. Tek yapmanız gereken, izlemek istediğiniz diski (yani:) /
belirli bir fonksiyondan geçirmektir .
def disks():
if len(sys.argv) > 1:
for disk in range(1, len(sys.argv)):
tmp = psutil.disk_usage(sys.argv[disk])
print sys.argv[disk], "\n"
print "Megabytes total: ",
print str(float(tmp.total) / 1048576)
print "Megabytes used: ",
print str(float(tmp.used) / 1048576)
print "Megabytes free: ",
print str(float(tmp.free) / 1048576)
print "Percentage used: ",
print tmp.percent, "\n"
Bunun asıl çıktısı psutil.disk_usage
şudur,
>>>psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
ama aynı zamanda sadece alabilir total
, used
, free
, veya percent
.
Tamamlanan program: (yukarıda belirtilen fonksiyonlar birleştirildi)
import psutil, os, sys
mem_perc = 0 #init var
swap_perc = 0 #init var
mbytes_sent = 0 #init var
mbytes_recv = 0 #init var
cpu_perc = 0 #init var
swap = 0 #init var
mem = 0 #init var
net = 0 #init var
def disp(degree):
global cpu_perc
global swap
global swap_perc
global mem
global mem_perc
global net
global mbytes_sent
global mbytes_recv
cpu_perc = psutil.cpu_percent(interval=1, percpu=True)
swap = psutil.swap_memory()
swap_perc = swap.percent
mem = psutil.virtual_memory()
mem_perc = mem.percent
net = psutil.net_io_counters()
mbytes_sent = float(net.bytes_sent) / 1048576
mbytes_recv = float(net.bytes_recv) / 1048576
os.system('clear') #clear the screen
print "-"*30
print "CPU"
print "-"*30
print "CPU Temperature: " , degree, "'C"
for i in range(len(cpu_perc)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
print "-"*30
print "MEMORY"
print "-"*30
print "RAM: ", mem_perc, "%"
print "Swap: ", swap_perc, "%"
print "-"*30
print "NETWORK"
print "-"*30
print "MB sent: ", mbytes_sent
print "MB received: ", mbytes_recv
print "-"*30
print "DISKS"
print "-"*30
if len(sys.argv) > 1:
for disk in range(1, len(sys.argv)):
tmp = psutil.disk_usage(sys.argv[disk])
print sys.argv[disk], "\n"
print "Megabytes total: ",
print str(float(tmp.total) / 1048576)
print "Megabytes used: ",
print str(float(tmp.used) / 1048576)
print "Megabytes free: ",
print str(float(tmp.free) / 1048576)
print "Percentage used: ",
print tmp.percent, "\n"
def main():
print("Press Ctrl+C to exit")
while True:
temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')
temp = float(temp) / 1000
disp(temp)
main()
Hat temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')
, donanım yapılandırmanızla çalışmayabilir.
Bu programı komut satırından çalıştırın. İzlemek istediğiniz diskleri komut satırından bağımsız değişken olarak geçirin.
$ python usage.py /
Press Ctrl+C to exit
------------------------------
CPU
------------------------------
CPU Temperature: 39.0 'C
CPU Core 1 : 4.8 %
CPU Core 2 : 1.0 %
CPU Core 3 : 0.0 %
CPU Core 4 : 4.9 %
------------------------------
MEMORY
------------------------------
RAM: 33.6 %
Swap: 6.4 %
------------------------------
NETWORK
------------------------------
MB sent: 2.93382358551
MB received: 17.2131490707
------------------------------
DISKS
------------------------------
/
Megabytes total: 13952.484375
Megabytes used: 8542.6640625
Megabytes free: 4678.5703125
Percentage used: 61.2
/media/calvin/Data
Megabytes total: 326810.996094
Megabytes used: 57536.953125
Megabytes free: 269274.042969
Percentage used: 17.6
Bu yardımcı olur umarım! Herhangi bir sorunuz varsa yorum yapın.
https://github.com/calthecoder/sysmon-1.0.1