恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战

  • 首页
  • 资讯中心
  • /
  • Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战

相关资讯

CodeX CLI使用笔记 2026/8/28 17:07:43
【好靶场】报错注入-sql注入-字符型 2026/8/28 17:07:43
企业文件管理与协同平台实战:从版本控制到私有化部署 2026/8/28 17:07:43

最新资讯

python一般用什么编译器-Python必学之编译器用哪个好?你用错了吧!
DM数据库删除数据文件:全面解析与实践指南
具身智能进入深水区:机器人公司真正要补的六堂课
ChatGPT 表情包制作教程:一张照片做出一整套微信/QQ Meme 贴纸
蓝桥杯真题解析:纯质数与完全日期的算法实现与优化
GitLab CI Local项目中服务定义无法加载dotenv变量的技术分析

今日推荐

2026学术工具专业测评|Paperxie全维度性能实测报告[特殊字符]
凭什么稳居论文工具顶流[特殊字符]Paperxie综合实力深度全解析
2026论文工具深度测评|为什么Paperxie是目前最稳的学术工具✅

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战

发布时间:2026/8/28 17:07:43
Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战 Python 运维 —— 系统信息模块作用采集服务器 CPU、内存、磁盘、网络、进程、IP 网段信息用于监控、巡检、自动化运维。 包含三大模块psutil系统资源采集、IPyIP 网段处理、subprocess.Popen调用系统命令一、psutil 模块跨平台系统资源采集1. 简介psutil 是第三方跨平台库用来获取系统利用率、进程信息等价于 Linux 命令top、free、df、ps、iostat等工具的能力。 安装pip install psutil2. CPU 信息表格方法说明psutil.cpu_times()获取 CPU 各项时间统计user、system、idle、iowait 等psutil.cpu_times(percpuTrue)获取每个逻辑 CPU 的详细时间psutil.cpu_count()CPU 逻辑核数包含超线程psutil.cpu_count(logicalFalse)CPU 物理核数示例代码importpsutil cpu_infopsutil.cpu_times(percpuTrue)print(cpu_info)print(user CPU时间,psutil.cpu_times().user)print(逻辑核,psutil.cpu_count())print(物理核,psutil.cpu_count(logicalFalse))3. 内存信息psutil.virtual_memory()物理内存信息返回对象包含total、used、free、available、percentpsutil.swap_memory()swap 交换分区信息importpsutil mempsutil.virtual_memory()print(内存总大小,mem.total)print(空闲内存,mem.free)print(swap信息,psutil.swap_memory())单位返回数值单位是字节 Byte需要手动除以 1024 转 KB、MB。4. 磁盘信息表格方法作用psutil.disk_partitions()获取磁盘分区列表psutil.disk_usage(/)获取某个分区使用率psutil.disk_io_counters()磁盘整体 IO 统计psutil.disk_io_counters(perdiskTrue)每块磁盘单独 IO 统计importpsutilprint(psutil.disk_partitions())print(psutil.disk_usage(/))print(psutil.disk_io_counters())5. 网络 IO 信息表格方法说明psutil.net_io_counters()整机全部网卡收发流量包、字节数psutil.net_io_counters(pernicTrue)每个网卡单独流量统计返回字段bytes_sent发送字节、bytes_recv接收字节、packets_sent发送包、packets_recv接收包。6. 其他系统基础信息importpsutil,datetime psutil.users()# 当前登录系统用户列表psutil.boot_time()# 开机时间戳1970‑01‑01开始的秒数# 时间戳转可读时间datetime.datetime.fromtimestamp(psutil.boot_time()).strftime(%Y-%m-%d %H:%M:%S)7. 进程管理psutil.pids()获取全部进程 PID 列表psutil.Process(pid)实例化单个进程对象获取进程各项信息Process 对象常用方法ppsutil.Process(2000)p.name()#进程名p.exe()#程序二进制路径p.cwd()#工作目录p.status()#进程状态p.create_time()#进程创建时间戳p.uids()#UID信息Linuxp.gids()#GID信息Linuxp.cpu_times()#进程CPU占用时间p.memory_percent()#进程内存占比p.memory_info()#rss、vms内存详情p.io_counters()#进程IO读写统计p.num_threads()#线程数量8.subprocess.Popen 调用系统命令Popen 是底层创建子进程类用来执行 shell 命令获取输出和错误信息。stdoutsubprocess.PIPE捕获标准输出stderrsubprocess.PIPE捕获错误输出.communicate()等待命令执行完成返回(输出字节,错误字节)返回是 bytes需要.decode(utf‑8)转字符串。示例importsubprocess processsubprocess.Popen([ls,-l],stdoutsubprocess.PIPE,stderrsubprocess.PIPE)output,errorprocess.communicate()ifoutput:print(output.decode(utf‑8))iferror:print(error.decode(utf‑8))注意命令建议写成列表[ls,‑l]不推荐字符串 shellTrue存在安全风险。二、IPy 模块IP 地址网段处理第三方模块用于 IP 规划处理 IPv4/IPv6 网段、掩码、IP 区间计算。 安装pip install IPy导入from IPy import IP1. 基础用法ipIP(192.168.1.0/24)ip.version()#4代表IPv46代表IPv6ip.len()#网段内IP总数量forxinip:#遍历网段所有IPprint(x)2.IP 常用转换方法ipIP(192.168.1.20)ip.reverseNames()#反向解析域名ip.iptype()#PRIVATE私网 / PUBLIC公网ip.int()#转整数ip.strHex()#十六进制ip.strBin()#二进制IP(0x8080808)#十六进制转回IP3.make_netTrue 重点踩坑点作用把 IP / 掩码、IP 范围强制转为标准网段对象。⚠️重要限制如果传入起始IP‑结束IP的范围必须刚好是完整子网边界总 IP 数量是 2 的 n 次方否则抛异常not on a network boundary。#✅合法刚好/24完整网段 IP(192.168.1.0‑192.168.1.255,make_netTrue) #❌报错0‑192一共193个IP不是2的幂次 IP(192.168.1.0‑192.168.1.192,make_netTrue)4.strNormal () 格式化输出网段IP(192.168.1.0/24).strNormal(wantprefixlen?)表格参数值输出格式0192.168.1.0仅网络地址1192.168.1.0/24前缀2192.168.1.0/255.255.255.0点分掩码3192.168.1.0‑192.168.1.255起止 IP5. 网段关系运算判断 IP 是否属于网段192.168.1.100 in IP(192.168.1.0/24)网段大小比较IP(10.0.0.0/24) IP(12.0.0.0/24)判断网段是否重叠.overlaps()返回 1 重叠0 不重叠IP(192.168.0.0/23).overlaps(192.168.1.0/24)#返回1重叠IP(192.168.1.0/24).overlaps(192.168.2.0/24)#返回0不重叠6. 综合小案例输入 IP / 网段输出网络信息addressinput(请输入ip地址: )ipIP(address)iflen(ip)1:print(网络号为,ip.net())print(子网掩码为,ip.netmask())print(广播地址为,ip.broadcast())print(反向解析地址,ip.reverseNames()[0])print(网络子网数,len(ip))else:print(反向解析ip地址为,ip.reverseNames()[0])print(十六进制地址,ip.strHex())print(二进制地址,ip.strBin())print(地址类型为,ip.iptype())

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号