तुम sysmon कोशिश करना चाहते हो सकता है । हालांकि झलक के रूप में फैंसी नहीं है, यह बहुत सीधा और उपयोग करने में आसान है।
यदि आप गंदे होना चाहते हैं और अजगर में थोड़ी स्क्रिप्टिंग करना चाहते हैं, तो यहां आपको शुरू करने के लिए पायथन के साथ सिस्टम मॉनिटरिंग की कुछ बुनियादी बातें हैं।
आपको psutil
अधिकांश चीजों की निगरानी के लिए एक बाहरी मॉड्यूल की आवश्यकता होगी । स्रोत से निर्माण के बजाय बाहरी मॉड्यूल इंस्टॉलर का उपयोग करना सबसे आसान है।
नोट: ये उदाहरण पायथन 2.7 में लिखे गए हैं
sudo apt-get install pip
sudo pip install psutil
अब जब हमारे पास मॉड्यूल स्थापित हैं, तो हम कोडिंग शुरू कर सकते हैं।
सबसे पहले, नामक एक फाइल बनाएं usage.py
।
gedit ~/usage.py
आयात करके शुरू करें psutil
import psutil
फिर, आपके CPU कोर पर चल रहे प्रतिशत की निगरानी के लिए एक फ़ंक्शन बनाएं।
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]), "%"
चलो थोड़ा नीचे तोड़, हम करेंगे?
पहली पंक्ति, cpu_num = psutil.cpu_percent(interval=1, percpu=True)
उस प्रतिशत को खोजती है जो आपके सीपीयू में कोर पर चल रहा है और इसे एक सूची में निर्दिष्ट करता है cpu_perc
।
यह पाश यहाँ है
for i in range(len(cpu_num)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
लूप के लिए है जो आपके प्रत्येक सीपीयू कोर के वर्तमान प्रतिशत को प्रिंट करता है।
चलो राम उपयोग जोड़ें।
नामक एक फंक्शन बनाएं ram_perc
।
def ram_perc():
mem = psutil.virtual_memory()
mem_perc = mem.percent
print "RAM: ", mem_perc, "%"
psutil.virtual_memory
आपके कंप्यूटर में RAM के बारे में विभिन्न तथ्यों से युक्त डेटा सेट देता है।
इसके बाद, आप अपने नेटवर्क के बारे में कुछ तथ्य जोड़ सकते हैं।
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
चूंकि psutil.net_io_counters()
हमें बाइट्स में भेजे और प्राप्त किए गए पैकेट के बारे में केवल जानकारी दी गई है, इसलिए कुछ रूपांतरित करना आवश्यक था।
स्वैप स्थान के बारे में कुछ जानकारी प्राप्त करने के लिए, इस फ़ंक्शन को जोड़ें।
def swap_perc():
swap = psutil.swap_memory()
swap_perc = swap.percent
यह एक बहुत सीधा है।
तापमान करना कठिन है, इसलिए आपको यह पता लगाने के लिए अपने स्वयं के कुछ शोध करने की आवश्यकता हो सकती है कि आपके हार्डवेयर के साथ क्या काम होगा। आपको एक निश्चित फ़ाइल की सामग्री प्रदर्शित करनी होगी।
तापमान की तुलना में डिस्क उपयोग बहुत आसान है। आपको बस /
एक निश्चित फ़ंक्शन के माध्यम से उस डिस्क को पास करना है जिसे आप मॉनिटर करना चाहते हैं (यानी :)।
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"
इसका मूल आउटपुट psutil.disk_usage
यह है,
>>>psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
लेकिन आप यह भी सिर्फ प्राप्त कर सकते हैं total
, used
, free
, या percent
।
पूरा कार्यक्रम: (उपरोक्त कार्य संयुक्त थे)
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()
लाइन temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')
आपके हार्डवेयर कॉन्फ़िगरेशन के साथ काम नहीं कर सकती है।
इस प्रोग्राम को कमांड लाइन से चलाएं। आप जिस डिस्क को मॉनिटर करना चाहते हैं, उसे कमांड लाइन से पास करें।
$ 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
उम्मीद है की यह मदद करेगा! यदि आपके कोई प्रश्न हैं तो टिप्पणी करें।
https://github.com/calthecoder/sysmon-1.0.1