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