按照 一步步操作實現乙個簡單的系統監控
我自己安裝的是python 3.5 和部落格裡面的版本不太一樣
而且博主是用於監控linux系統,我修改了些**可以檢測到windows的資訊
還有個地方是博主用的是mysql,我也懶得裝,我就用sqlit3。
先把flask環境搭建好
建個資料庫
from sqlite3 import dbapi2 as sqlite3
conn = sqlite3.connect('stat')
print("建立資料庫成功")
conn.execute("""create table stat(
id integer primary key autoincrement,
host string,
mem_free integer,
mem_usage integer,
mem_total integer,
time integer
print("資料表建立成功")
建好後別忘了執行一下。
server 部分基本與51reboot裡一樣
from sqlite3 import dbapi2 as mysql
import json
from flask import flask, request, render_template
模板部分就是直接粘過來的
記憶體監控
">>
">>
agent部分做了較大修改,引用了wmi來獲取windows的資訊
import inspect
import time
import json
import socket
import wmi
import os
import win32con
import win32api
import urllib.request
class mon:
def __init__(self):
self.data = {}
def gettime(self):
return str(int(time.time()) + 8 * 3600)
def gethost(self):
return socket.gethostname()
def getmemtotal(self):
c = wmi.wmi()
for sys in c.win32_operatingsystem():
return sys.totalvisiblememorysize
def getmemusage(self):
c = wmi.wmi()
for sys in c.win32_operatingsystem():
total = sys.totalvisiblememorysize
free = sys.freephysicalmemory
usage = int(total)-int(free)
#print()
return str(usage)
def getmemfree(self):
c = wmi.wmi()
for sys in c.win32_operatingsystem():
return sys.freephysicalmemory
def runallget(self):
for fun in inspect.getmembers(self,predicate=inspect.ismethod):
#for fun in [gettime,gethost,getmemtotal,getmemusage,getmemfree]:
#print(fun[:3])
if fun[0][:3] == 'get':
#print(fun[:3])
self.data[fun[0][3:]] = fun[1]()
#print(self.data)
return self.data
51reboot博主用了2小時就魯出來了,我照著做還用了2天可見差距。
雖然**不美觀,有些地方的重複定義也可能導致系統效能下降,但程式執行起來了,心情瞬間就好了。
python實現鳳凰新聞監控
由於任務需求,要關注鳳凰新聞網相關報道,要做到出現相關報道報警來通知我,時間緊湊,本人水平也有限,寫的比較簡單,請見諒。如有人實現過類似功能,也請多多指教。下面直接貼 了。coding utf 8 from bs4 import beautifulsoup import urllib import ...
python監控 python 監控服務
最近寫了乙個web測試程式,因為部署在其他地方,所以想弄個監控的程序去看服務是不是還在,要是不在好發郵件,就用python簡單的寫了乙個。當然,有的時候也要考慮到監控程序本身就掛了,或者不想監控了。首先監控指令碼是這樣,很簡單 monitor.py coding 簡單的monitor函式,主要監控乙...
C 實現簡單螢幕監控的方法
這是一段c 編寫的螢幕監控 可以自動對螢幕進行截圖,軟體自身隱藏 using system using system.collections.generic using system.componentmodel using system.data using system.drawing usin...