python3實現windows下同名程序監控

2021-08-17 23:28:33 字數 1588 閱讀 6237

公司老版的svn伺服器的svn服務經常意外關閉,需要寫個簡單的監控指令碼監控一下;

首先多個svn服務使用不同的埠,使用wmic命令檢視所有svn程序占用的埠以此來判斷目標服務是否存活,wimc命令如下:

wmic process where caption=」svn.exe」 get commandline /value

然後用正則取出標準輸出中的埠,用來比對;

def

get_alive_port

(program):

""" 獲取目標程式占用的埠

:param program 目標程序

:return portlist 目標程序占用的埠列表

"""cmd = 'wmic process where caption="%s" get commandline /value' % program

ps = subprocess.popen(cmd, stdout=subprocess.pipe, shell=true)

portlist =

while

true:

out = ps.stdout.readline()

if out:

out = out.decode("gb2312")

templist = re.findall("[0-9]", out)

portlist.extend(templist)

else:

break

return portlist

使用監控後發現svn服務不意外關閉了,但是svn程式被訪問久了占用過大記憶體需要監控一下借助psutil來實現;

def

howmuch_memory

(program):

""" 監控目標程序記憶體是否超過閥值,若超過則關閉

"""cmd = 'wmic process where caption="%s" get processid /value' % program

ps = subprocess.popen(cmd, stdout=subprocess.pipe, shell=true)

pids =

while

true:

out = ps.stdout.readline()

if out:

out = out.decode("gb2312")

templist = re.findall("[0-9]", out)

pids.extend(templist)

else:

break

for pid in pids:

try:

p = psutil.process(int(pid))

p_memory = p.memory_info()

if int(p_memory.rss / (1024 * 1024)) >= 200:

p.kill()

except exception as e:

print("出現如下錯誤:".format(e))

continue

python3的安裝,Window與linux

一 window安裝 1.首先是window下的安裝。點選download,進入頁面,拉到最下面,有個file的標題 安裝完之後,在命令提示符就可以輸入python就行了,就能進入編譯器了。如果不可用,輸入python3試試,這個跟環境變數有關。如果還是不行,就進入安裝目錄下啟動。一般安裝後,在開始...

python3實現CryptoJS AES加密演算法

from crypto.cipher import aes from binascii import b2a hex,a2b hex import base64 class aescrypt def init self,key self.key key.encode utf8 self.mode a...

Python3 實現選擇排序

選擇排序 selection sort 原理很簡單,就是依次在未排序資料段中選擇出乙個最小的數,然後將其排列在已排序資料段末端,直到整個資料段排序完成演算法結束。程式如下,第乙個迴圈依次縮小未排序資料段的長度,並且每次將最小值暫定為未排序中第一位索引。第二個迴圈依次將該最小值與未排序資料段作比較,選...