学习python自动化运维的第一天
今天学习了python的psutil模块,以及IPy模块
以上的代码部分为主要的学习内容,自己给自己做个记录。如果又朋友需要使用,可以解锁相关的代码块即可,不同的代码块用空行隔开。
"""python自动化运维,学习的第一天"""
"""系统性能信息模块psutil"""
# # 测试
# import psutil # 大小单位一般采用字节
# mem = psutil.virtual_memory()
# print(mem.total,mem.used)
"""获取系统性能信息"""
# # CPU信息
# import psutil
# print("cpu信息",psutil.cpu_times()) # 获取cpu完整信息
# # 输出结果:scputimes(user=17722.796875,
# # system=19252.84375, idle=746279.328125,
# # interrupt=507.9375, dpc=574.78125)
# # 分别表示执行用户进程的时间,执行内核进程和中断的时间,
# # cpu处于idle状态的时间
# # 也可以单独输出
# print("cpu单个信息:",psutil.cpu_times().user)
# # 输出结果:17791.703125
# print("cpu的逻辑个数:",psutil.cpu_count()) # 获取cpu的逻辑个数
# print("cpu的物理个数",psutil.cpu_count(logical=False)) # 获取cpu的物理个数
# # 获取内存信息
# import psutil
# mem = psutil.virtual_memory()
# print("获取完整信息",mem) # 获取完整的内存信息
# print("获取内存总数信息",mem.total) # 获取单个信息
# print("获取空闲内存信息",mem.free)
# print("获取swap分区信息",psutil.swap_memory()) # 获取swap分区信息
# # 获取磁盘信息
# import psutil
# print("获取磁盘完整信息",psutil.disk_partitions()) # 获取磁盘完整信息
# print("获取指定分区信息",psutil.disk_usage("C:/")) # 获取指定分区的使用情况
# print("获取硬盘总的IO个数",psutil.disk_io_counters()) # 获取硬盘总的IO个数、读取信息
# print("获取单个分区的IO个数",psutil.disk_io_counters(perdisk=True))
# # 获取网络信息
# import psutil
# print("获取网络总的IO信息",psutil.net_io_counters()) # 获取网络总的IO信息
# print("获取单个(每个)网络的IO信息",psutil.net_io_counters(pernic=False)) # 获取每个网络接口的IO信息
# # 获取系统其他信息
# import psutil,datetime
# print("获取用户登录信息",psutil.users()) # 获取当前登录的用户信息
# print("获取开机时间",psutil.boot_time()) # 获取开机时间 格式是时间戳
# print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")) # 将开机时间格式化输出
"""系统进程管理方法"""
# # 进程信息
# import psutil
# print(psutil.pids()) # 列出所有进程pid,输出格式为列表形式
# p = psutil.Process(17804) # 实例化一个Process对象,参数为一个进程的pid
# print("进程名字",p.name()) # 输出指定进程的名字
# print("进程的bin路径",p.exe()) # 输出进程的bin路径
# print("进程的工作路径",p.cwd()) # 输出进程的工作路径(绝对路径)
# print("进程工作状态",p.status()) # 获取进程工作状态,sleeping,running
# print("进程创建时间",p.create_time()) # 获取进程创建时间 时间戳格式
# print("进程的cpu时间",p.cpu_times()) # 获取进程的cpu时间
# print("进程的cpu亲和度",p.cpu_affinity()) # 请求进程的cpu的亲和度
# print("进程的内存使用率",p.memory_percent()) # 进程内存利用率
# print("进程的内存信息",p.memory_info()) # 进程内存rss,vms信息
# print("进程的IO信息",p.io_counters()) # 进程的IO信息,包括读写IO数及字节数
# print("进程的socket列表",p.connections()) # 返回进程的socket的manedutples列表
# print("进程开启的线程数",p.num_threads()) # 进程开启的线程数
# # popen类的使用,该方法以便跟踪进程的运行状态
# import psutil
# from subprocess import PIPE
# p = psutil.Popen(["D:\\AppData\\anaconda\\python.exe","-c","print('hello')"],stdout=PIPE)
# print(p.name())
# print(p.username())
# # 具体的操作方法看进程信息
"""IP地址处理模块"""
# # 测试
# from IPy import IP
# print(IP('0.0.0.0/16').version()) # 输出IP地址的类型,4表示IPV4,6表示IPV6
# print(IP('::1').version())
"""ip地址,网段的基本处理"""
# from IPy import IP
# ip = IP('192.168.1.252/30')
# print(ip.len()) # 输出网段的IP个数
# for i in ip:
# print(i) # 打印该网段的所有IP清单
# # IP类的常用方法介绍
# from IPy import IP
# ip =IP("192.168.1.20")
# print(ip.reverseName()) # 反向解析地址格式 输出格式:20.1.168.192.in-addr.arpa.
# print(ip.iptype()) # 判断ip地址为公网(PUBLIC),还是私网(PRIVATE)
# print(ip.int()) # 转换为整型格式
# print(ip.strHex()) # 转换为十六进制
# print(ip.strBin()) # 转换为二进制
# print(IP(0xc0a80114)) # 将十六进制转化为IP格式