python監(jiān)控nginx端口和進(jìn)程狀態(tài)
本文實(shí)例為大家分享了python監(jiān)控nginx端口和進(jìn)程狀態(tài)的具體代碼,供大家參考,具體內(nèi)容如下
#!/usr/local/bin/python
# coding:utf-8
import psutil
import sys
import os
# 獲取主機(jī)名稱(chēng)
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'
# 獲取進(jìn)程狀態(tài)
def processStatus(processName):
pids = psutil.pids() #獲取主機(jī)所有的PID
a = 1
for pid in pids: #對(duì)所有PID進(jìn)行循環(huán)
p = psutil.Process(pid) #實(shí)例化進(jìn)程對(duì)象
if p.name() == processName: #判斷實(shí)例進(jìn)程名與輸入的進(jìn)程名是否一致(判斷進(jìn)程是否存活)
print (a) #返回1,進(jìn)程存活
a += 1
if a == 1:
print (0) #返回0,進(jìn)程逝去
# 獲取進(jìn)程PID
def processPID(processName):
pids = psutil.pids()
for pid in pids:
p = psutil.Process(pid)
if p.name() == processName:
return pid
return True # 如果找到該進(jìn)程則打印它的PID,返回true
else:
print('找不到進(jìn)程'+processName)
return False # 沒(méi)有找到該進(jìn)程,返回false
# 獲取進(jìn)程的端口號(hào)
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')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊
這篇文章主要介紹了Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊,首先創(chuàng)建一個(gè)以christmastree的命名的模塊并定義一個(gè)全局變量創(chuàng)建一個(gè)名稱(chēng)為fun_christmastree()的函數(shù)展開(kāi)詳情,感興趣的朋友可以參考一下2022-06-06
python3 traceback模塊來(lái)追蹤和打印異常信息
本文主要介紹了python3 traceback模塊來(lái)追蹤和打印異常信息,這個(gè)模塊提供了許多函數(shù)來(lái)處理異常,并且能夠輸出異常的堆棧信息,感興趣的可以了解一下2024-02-02
Python用摘要算法生成token及檢驗(yàn)token的示例代碼
這篇文章主要介紹了Python用摘要算法生成token及檢驗(yàn)token的示例代碼,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12
Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上
這篇文章主要介紹了Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上,本文講解了判斷 OpenVZ/Xen PV/UML、判斷 VMware/Xen HVM/KVM、判斷 VirtualBox/Virtual PC等方法,需要的朋友可以參考下2015-04-04
Python中eval()函數(shù)的功能及使用方法小結(jié)
python中eval(str)函數(shù)很強(qiáng)大,官方解釋為:將字符串str當(dāng)成有效的表達(dá)式來(lái)求值并返回計(jì)算結(jié)果,所以,結(jié)合math當(dāng)成一個(gè)計(jì)算器很好用2023-05-05
關(guān)于Python中異常(Exception)的匯總
異常是指程序中的例外,違例情況。異常機(jī)制是指程序出現(xiàn)錯(cuò)誤后,程序的處理方法。當(dāng)出現(xiàn)錯(cuò)誤后,程序的執(zhí)行流程發(fā)生改變,程序的控制權(quán)轉(zhuǎn)移到異常處理。下面這篇文章主要匯總了關(guān)于Python中異常(Exception)的相關(guān)資料,需要的朋友可以參考下。2017-01-01
python一鍵升級(jí)所有pip package的方法
下面小編就為大家?guī)?lái)一篇python一鍵升級(jí)所有pip package的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
解決keras,val_categorical_accuracy:,0.0000e+00問(wèn)題
這篇文章主要介紹了解決keras,val_categorical_accuracy:,0.0000e+00問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Python urllib.request對(duì)象案例解析
這篇文章主要介紹了Python urllib.request對(duì)象案例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Python學(xué)習(xí)筆記之自定義函數(shù)用法詳解
這篇文章主要介紹了Python學(xué)習(xí)筆記之自定義函數(shù)用法,結(jié)合實(shí)例形式詳細(xì)分析了自定義函數(shù)的功能、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-06-06

