python监控nginx端口和进程状态


Posted in Python onSeptember 06, 2019

本文实例为大家分享了python监控nginx端口和进程状态的具体代码,供大家参考,具体内容如下

#!/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'
 
# 获取进程状态
def processStatus(processName):
  pids = psutil.pids()   #获取主机所有的PID
  a = 1
  for pid in pids:      #对所有PID进行循环
    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')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现动态图解析、合成与倒放
Jan 18 Python
python Opencv将图片转为字符画
Feb 19 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
python和opencv构建运动检测器的实现
Mar 03 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 #Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 #Python
Python代理IP爬虫的新手使用教程
Sep 05 #Python
关于Python内存分配时的小秘密分享
Sep 05 #Python
python global关键字的用法详解
Sep 05 #Python
python requests证书问题解决
Sep 05 #Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 #Python
You might like
德生PL330的评价与改造
2021/03/02 无线电
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
python实现调用其他python脚本的方法
2014/10/05 Python
python实现堆栈与队列的方法
2015/01/15 Python
Python下Fabric的简单部署方法
2015/07/14 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
Python os模块常用方法和属性总结
2020/02/20 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
注塑工厂厂长岗位职责
2013/12/02 职场文书
上班睡觉检讨书
2014/01/09 职场文书
旅游文化节策划方案
2014/06/06 职场文书
自我检讨书怎么写
2015/05/07 职场文书