python自动发现脚本

Python 是一种功能强大且易于学习的编程语言,它在运维工程师的日常工作中扮演着重要的角色。Python 的简洁性和丰富的库生态系统使其成为编写自动化脚本和工具的理想选择。下面是一些运维工程师在日常工作中经常使用的 Python 脚本的概述。

Python 运维脚本整理归纳_python自动化运维常用脚本-CSDN博客

# 判断端口是否开放

import socket
 
port_number = [135,443,80]
 
for index in port_number:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    result = sock.connect_ex(('127.0.0.1', index))
    if result == 0:
        print("Port %d is open" % index)
    else:
        print("Port %d is not open" % index)
    sock.close()

# 自动发现tcp

#!/usr/bin/python
import os
import json
 
data = {}
tcp_list = []
port_list = []
command = "netstat -tlnp | sed -n '3,$p' | awk '{print $4}' | awk -F':' '{print $NF}'"
lines = os.popen(command).readlines()
for line in lines:
    port=line.strip('\n')
#   port = line.split(':')[1]
    port_list.append(port)
 
for port in list(set(port_list)):
    port_dict = {}
    port_dict['{#TCP_PORT}'] = port
    tcp_list.append(port_dict)
 
data['data'] = tcp_list
jsonStr = json.dumps(data, sort_keys=True, indent=4)
print jsonStr

# 自动发现java

#!/usr/bin/env python
#encoding: utf8

import subprocess
try:
    import json
except ImportError:
    import simplejson as json

command = "netstat -tpln | grep -v '127.0.0.1' | awk -F '[ :]+' '/java/ && / / {print $5}'"
p = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE)

port_list = p.stdout.read().split('\n')

port = []
for i in port_list:
    if len(i) != 0:
        port += [{'{#JAVA_PORT}':i}]

print json.dumps({'data':port},sort_keys=True,indent=4,separators=(',',':'))

# 进程号内存

"""
Author: deepinwst
Email: wanshitao@donews.com
Date: 19-4-17 上午10:44
"""

import psutil
import time
import json


KEY_LIST = [
    "status",  # 进程状态
    "pid",  # 进程号
    "create_time", # 进程启动时间
    "cpu_percent", # cpu占用率
    "username",  # 启动进程的用户
    "num_threads",  # 线程数量
    "memory_percent", # 内存使用率
    "cmdline", # 启动命令
    "cpu_affinity" # 使用了哪些核
]

def common_monitor(key_lis):
    """记录当前所有进程的状态"""
    pids = psutil.pids()
    pids_lis = []
    for pid in pids:
        if psutil.pid_exists(pid):
            pid_obj = psutil.Process(pid)
            dic = pid_obj.as_dict(attrs=key_lis)
            dic['cpu_affinity'] = str(dic['cpu_affinity'])
            dic['cmdline'] = ' '.join(dic['cmdline'])
            dic['create_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(dic['create_time']))
            pids_lis.append(dic)

    return pids_lis

def one_process(pid, key_lis):
    """ 记录某个进程的状态 """
    pid_obj = psutil.Process(pid)
    dic = pid_obj.as_dict(attrs=key_lis)
    dic['cpu_affinity'] = str(dic['cpu_affinity'])
    dic['cmdline'] = ' '.join(dic['cmdline'])
    dic['create_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(dic['create_time']))
    return dic
if __name__ == "__main__":
    ## 查看所有进程
    #res = common_monitor(KEY_LIST)
    #print(json.dumps(res, indent=4))
    # 请确保进程号存在
    res = one_process(5487, KEY_LIST)
    print(json.dumps(res, indent=4))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python自动挂机脚本是使用Python编写的一个程序,可以用于自动执行特定的任务或操作,而无需人工干预。 使用Python编写自动挂机脚本可以帮助我们提高工作效率,减轻重复繁琐的操作,节省时间和精力。 Python自动挂机脚本的应用范围非常广泛。例如,在网络游戏中,我们可以编写自动挂机脚本来完成一些重复性的任务,如打怪、练级、收集资源等。在网页数据爬取中,我们可以使用自动挂机脚本来定时获取特定网站的信息,并将数据保存到本地或进行进一步的分析。此外,在自动化测试中,我们可以借助自动挂机脚本来模拟用户操作,自动化执行测试用例。 编写一个简单的Python自动挂机脚本通常包括以下步骤: 1. 导入必要的库和模块。 2. 连接到目标应用程序或游戏。 3. 设置自动挂机的条件和触发器,如时间间隔、特定关卡等。 4. 编写相应的代码来执行自动化任务,例如模拟鼠标点击、键盘输入等。 5. 循环执行自动化任务直到达到预设的条件或触发器。 6. 保存结果或输出报告,可选的可以将相关数据保存到本地文件或数据库中。 总而言之,Python自动挂机脚本是一种方便实用的工具,可以帮助我们自动执行任务,提高工作效率。编写一个高效稳定的自动挂机脚本需要一定的编程经验和对目标应用程序的了解,同时需要遵守相关法律法规和道德规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值