python監(jiān)控nginx端口和進程狀態(tài)
更新時間:2019年09月06日 08:33:18 作者:狼叔也瘋狂
這篇文章主要為大家詳細(xì)介紹了python監(jiān)控nginx端口和進程狀態(tài),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python監(jiān)控nginx端口和進程狀態(tài)的具體代碼,供大家參考,具體內(nèi)容如下
#!/usr/local/bin/python # coding:utf-8 import psutil import sys import os # 獲取主機名稱 def hostname(): sys = os.name if sys == 'nt': hostname = os.getenv('computername') return hostname elif sys == 'posix': host = os.popen('echo $HOSTNAME') try: hostname = host.read() return hostname finally: host.close() else: return 'Unkwon hostname' # 獲取進程狀態(tài) def processStatus(processName): pids = psutil.pids() #獲取主機所有的PID a = 1 for pid in pids: #對所有PID進行循環(huán) p = psutil.Process(pid) #實例化進程對象 if p.name() == processName: #判斷實例進程名與輸入的進程名是否一致(判斷進程是否存活) print (a) #返回1,進程存活 a += 1 if a == 1: print (0) #返回0,進程逝去 # 獲取進程PID def processPID(processName): pids = psutil.pids() for pid in pids: p = psutil.Process(pid) if p.name() == processName: return pid return True # 如果找到該進程則打印它的PID,返回true else: print('找不到進程'+processName) return False # 沒有找到該進程,返回false # 獲取進程的端口號 def processPort(pid): p = psutil.Process(pid) data=p.connections() data_listen=[x for x in data if 'LISTEN' in x ] # pid_port=[] # for port in data_listen: # pid_port.append((port.laddr.port)) # return list(set(pid_port)) return list(data_listen[0][3])[1] hostname=hostname().strip() PID=processPID('nginx') port=processPort(PID) json_data = [ {"name": hostname+'-nginx', "port": port,"host_ip":LOCAL_IP,"PID":PID} ] AutoDiscoveryJson(json_data, object_id='HOST')
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PyCharm調(diào)用matplotlib繪圖時圖像彈出問題詳解
這篇文章主要給大家介紹了關(guān)于PyCharm調(diào)用matplotlib繪圖時圖像彈出問題的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PyCharm具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-07-07Python程序自動以管理員權(quán)限運行的實現(xiàn)方法
Windows上為了安全起見,python語言啟動的應(yīng)用程序默認(rèn)都不會使用admin管理員權(quán)限,但是在有些情況下我們又需要使用管理員權(quán)限啟動應(yīng)用,這篇文章主要給大家介紹了關(guān)于Python程序自動以管理員權(quán)限運行的實現(xiàn)方法,需要的朋友可以參考下2023-11-11Django實現(xiàn)從數(shù)據(jù)庫中獲取到的數(shù)據(jù)轉(zhuǎn)換為dict
這篇文章主要介紹了Django實現(xiàn)從數(shù)據(jù)庫中獲取到的數(shù)據(jù)轉(zhuǎn)換為dict,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python接口自動化淺析logging封裝及實戰(zhàn)操作
本篇文章主要給大家介紹將了logging常用配置放入yaml配置文件、logging日志封裝及結(jié)合登錄用例,講解日志如何在接口測試中運用的實例操作2021-08-08