Anda mungkin ingin mencoba sysmon . Meskipun tidak semewah Glance, sangat lugas dan mudah digunakan.
Jika Anda ingin menjadi kotor dan melakukan sedikit scripting dengan python, berikut adalah beberapa dasar pemantauan sistem dengan Python untuk Anda mulai.
Anda akan memerlukan modul eksternal yang dipanggil psutil
untuk memantau sebagian besar hal. Lebih mudah menggunakan installer modul eksternal daripada membangun dari sumber.
Catatan: Contoh-contoh ini ditulis dalam Python 2.7
sudo apt-get install pip
sudo pip install psutil
Sekarang kita telah menginstal modul, kita dapat mulai coding.
Pertama, buat file bernama usage.py
.
gedit ~/usage.py
Mulailah dengan mengimpor psutil
import psutil
Kemudian, buat fungsi untuk memantau persentase core CPU Anda berjalan.
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]), "%"
Mari kita hancurkan itu sedikit, oke?
Baris pertama cpu_num = psutil.cpu_percent(interval=1, percpu=True)
,, menemukan persentase bahwa core di CPU Anda berjalan dan menugaskannya ke daftar yang disebut cpu_perc
.
Loop ini di sini
for i in range(len(cpu_num)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
adalah for loop yang mencetak persentase saat ini dari masing-masing core CPU Anda.
Mari tambahkan penggunaan RAM.
Buat fungsi yang disebut ram_perc
.
def ram_perc():
mem = psutil.virtual_memory()
mem_perc = mem.percent
print "RAM: ", mem_perc, "%"
psutil.virtual_memory
memberikan kumpulan data yang berisi fakta-fakta berbeda tentang RAM di komputer Anda.
Selanjutnya, Anda dapat menambahkan beberapa fakta tentang jaringan Anda.
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
Karena psutil.net_io_counters()
hanya memberi kami informasi tentang paket yang dikirim dan diterima dalam byte, beberapa konversi diperlukan.
Untuk mendapatkan beberapa informasi tentang ruang swap, tambahkan fungsi ini.
def swap_perc():
swap = psutil.swap_memory()
swap_perc = swap.percent
Yang ini cukup mudah.
Suhu agak sulit dilakukan, jadi Anda mungkin perlu melakukan riset sendiri untuk mengetahui apa yang akan bekerja dengan perangkat keras Anda. Anda harus menampilkan konten file tertentu.
Penggunaan disk jauh lebih mudah daripada suhu. Yang perlu Anda lakukan adalah melewati disk yang ingin Anda pantau (yaitu:) /
melalui fungsi tertentu.
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"
Output asli psutil.disk_usage
adalah ini,
>>>psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
tetapi Anda juga dapat hanya menerima total
, used
, free
, atau percent
.
Program yang sudah selesai: (fungsi-fungsi tersebut digabungkan)
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()
Saluran temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')
mungkin tidak berfungsi dengan konfigurasi perangkat keras Anda.
Jalankan program ini dari baris perintah. Lewati disk yang ingin Anda pantau sebagai argumen dari baris perintah.
$ 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
Semoga ini membantu! Beri komentar jika Anda memiliki pertanyaan.
https://github.com/calthecoder/sysmon-1.0.1