py脚本 获取当前运行服务的相关信息
一.简介
最近在统计系统中都部署了什么服务,但服务器太多,在没有标准化之前进行整理,还是写脚本收集方便一些。
当然还是需要人工去判断整理表格,为后面标准化做准备。脚本是python2.7的,默认的centos系列都可以使用。
二.代码
#!/usr/bin/python2.7
#coding=utf-8
#通过netstat -unltp命令收集监听端口,需要客户端安装net-tools
#获取当前运行的服务相关信息、PID号、端口号、服务名称、目录位置
import json, commands, string
import socket, sys
deny_port = ["123", "22"]
def get_port():
prostr = commands.getstatusoutput('netstat -unltp')
prostr = str(prostr)
prolist = prostr.split('\\n') #用两个\才行
del prolist[0]
del prolist[0]
prolist = prolist[::-1]
info_dict = {}
for info in prolist:
port_info = info.split()
if len(port_info) >= 7:
tmp_port = port_info[3].split(':')
tmp_port = tmp_port.pop()
tmp_info = port_info[6].split('/')
tmp_pid = tmp_info[0]
if tmp_port in deny_port:
continue
if tmp_pid in info_dict.keys():
port_list = info_dict[tmp_pid]
port_list.append(tmp_port)
else:
info_dict[tmp_pid] = [tmp_port]
return info_dict
#根据字典循环去查询名称
def tmp_name(info_dict):
inq_bin = "ps -aux"
prostr = commands.getstatusoutput(inq_bin)
prostr = str(prostr)
prolist = prostr.split('\\n')
del prolist[0]
for i in prolist:
ps_info = i.split()
ps_pid = ps_info[2]
ps_name = ps_info[11:]
print("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
def get_name(info_dict):
#获取ps
inq_bin = "ps -aux"
prostr = commands.getstatusoutput(inq_bin)
prostr = str(prostr)
prolist = prostr.split('\\n')
del prolist[0]
for k, v in info_dict.items():
print("PID号: " + k)
print("监听的端口: " + v)
for i in prolist:
ps_info = i.split()
ps_pid = ps_info[1]
if k == ps_pid:
ps_name = ""
for n in ps_info[10:]:
ps_name = ps_name + " " + n
print("运行用户: " + ps_info[0])
print("服务名称: " + ps_name)
exe_dir = "ls -l /proc/" + k + "/exe"
exes = commands.getstatusoutput(exe_dir)
exes = str(exes)
exes_list = exes.split()
cwd_dir = "ls -l /proc/" + k + "/cwd"
cwds = commands.getstatusoutput(cwd_dir)
cwds = str(cwds)
cwds_list = cwds.split()
print("目录位置: " + exes_list[11] + " 或者 " + cwds_list[11])
print("+++++++++++++++++++++++++++++++++")
info_dict = get_port()
get_name(info_dict)
py脚本 获取当前运行服务的相关信息的更多相关文章
- SQL-58 获取有奖金的员工相关信息。
题目描述 获取有奖金的员工相关信息.CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...
- 根据funID,personID获取最新规划包项目相关信息
1.定义:根据funID,personID获取最新规划包项目相关信息(code projecttype(阶段) Pname(code+name) projectID) 项目表tbl_cfg_Proje ...
- C# 获取进程或线程的相关信息
信息来自: http://blog.163.com/kunkun0921@126/blog/static/169204332201293023432113/ using System; using S ...
- (转载)获取当前运行的PHP版本信息
(转载)http://www.clovery.org/get-the-php-version-information.html 获取PHP运行环境信息,可以使用下面的函数. <?php phpi ...
- MSCRM 获取列表所选记录相关信息
问题:如何通过JS获取列表中所选记录信息? 解决办法: The CRM2011 Ribbon has a special set of parameters called 'CrmParameters ...
- Dokcerfile部署webpy,安装imagehash库并运行py脚本获取图片dhash值
Dockerfile FROM lmurawsk/python2.7 RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple image ...
- JAVA如何利用Swiger获取Linux系统电脑配置相关信息
最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习. 推荐大家参考链接:ht ...
- asp.net 获取服务器及客户端的相关信息
1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName获取用户信息:Page.User获取客户端电脑名:Page.Request.UserHostName ...
- 用js获取当前页面的url的相关信息方法
当前页面对应的URL的一些属性: ( http://bbs.xxx.net/forum.php?mod=viewthread&tid=2709692&page=1&extra= ...
随机推荐
- X-MagicBox-820的luatOS之路连载系列4
上次说到定位成功后,显示的数据准确性问题.专门查询了下我所在地区的经纬度信息. MagicBox的显示数据是这样的: 网络上查到的经纬度数据是这样的: 可以看出定位精度还可以,毕竟我这个查询的数据没有 ...
- [cf1209E]Rotate Columns
题意也可以理解为这样一个过程: 对于每一列,将其旋转后选出若干行上的数,要求与之前的行都不同 用$g_{i,S}$表示第$i$列选出的行数集合为$S$的最大和,$f_{i,S}$表示前$i$列$S$中 ...
- 动画录屏软件-LICEcap
越来越觉得脑子不够用了,不记博客根本找不到自己以前都干了些啥,自己学的东西用不到就特别难受,学完不用,重新捡起来跟嚼蜡一样难受. 接下来推荐一款动画截屏软件,短小精悍: https://www.coc ...
- nginx安装与配置1-nginx安装
反向代理: 客户端不需要配置就可以访问,将请求发送到反向代理服务器, 由反向代理服务器选择目标服务器获取数据,再返回客户端,对外暴露代理服务器地址,隐藏真实ip 负载均衡: 客户端请求nginx等服务 ...
- while,do...while及for三种循环结构
循环结构 while循环 while (布尔表达式) { //循环内容 } 只要布尔表达式为true循环就会一直执行 我们大多数情况会让循环停止下来,需要一个让表达式失效的方式来停止循环 while循 ...
- Django(76)isort工具对import导入进行排序
前言 我们在开发项目时经常会进行导包有import *格式的,还有from * import *格式的,最后就会显示的很乱,那么有没有什么工具能对导包进行一键排序呢?答案是有的,使用isort工具 i ...
- 洛谷 P3239 [HNOI2015]亚瑟王(期望+dp)
题面传送门 感觉是道挺好的题,可惜当时没写题解来着的? 根据期望的线性公式,我们求出每个卡牌被发动的概率 \(q_i\),然后 \[ans=\sum\limits_{i=1}^np_id_i \] 于 ...
- Codeforces 1303G - Sum of Prefix Sums(李超线段树+点分治)
Codeforces 题面传送门 & 洛谷题面传送门 个人感觉这题称不上毒瘤. 首先看到选一条路径之类的字眼可以轻松想到点分治,也就是我们每次取原树的重心 \(r\) 并将路径分为经过重心和不 ...
- HDU 6755 - Fibonacci Sum(二项式定理+推式子)
题面传送门 其实是一道还好的题罢,虽然做了我 2147483647(bushi,其实是 1.5h),估计也只是因为 HDU 不支持数据下载所以错误总 debug 出来 首先看到 \(10^9+9\) ...
- Atcoder Regular Contest 117 D - Miracle Tree(分析性质+构造)
Atcoder 题面传送门 笑死,阴间语文作业到现在还没写完,为了在这个点保持精神,我只好来颓篇题解辣 我们考虑探究一下怎么最小化 \(\max\limits_{i=1}^nE_i\),我们假设 \( ...