初识Python自动化运维
Posted 雾晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识Python自动化运维相关的知识,希望对你有一定的参考价值。
系统模块
系统模块主要是使用psutil库,后面会主要写这个介绍一下
psutil 是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括cpu 磁盘 网络等信息)
常用psutil监控指标
import psutil
print(psutil.cpu_count(logical=False)) # 返回cpu核心数 参数默认true 如果是false仅返回物理核心数
print(psutil.virtual_memory()) # 返回内存信息 元组(全部,已用,百分比,使用过,未使用过,)
li=psutil.virtual_memory().total # 拿到内存 拿到的是比特
print(int(li)/1024/1024/1024) # 转换成gb
print(psutil.disk_partitions()) # 查看磁盘信息
print(psutil.disk_usage("D:\\\\").percent) #查看磁盘利用情况 当然后面也可以带一些其他参数,需要什么就带什么,具体可以看文档
print(psutil.disk_usage("F:\\\\"))
运行效果
使用psutil查看系统进程
import psutil
print(psutil.pids()) # 返回运行程序清单 list 里面是pid
print(psutil.Process(896)) #传入pid 可以拿到这个id对应的程序情况,并且返回一些信息 当然返回也是list
print(psutil.Process(896).exe()) # 返回程序所在位置
print(psutil.Process(896).connections()) # 返回程序连接信息 本地ip 远程ip 端口 状态等,可以使用它进行监控程序运行信息
运行效果
演示用popen获取用户进程信息
import psutil
p=psutil.Popen(["D:\\python\\python\\python.exe","-c","print('hello')"],stdout=PIPE) # 运行一个程序
print(p.name()) # 返回程序由什么程序运行
print(p.username()) # 返回运行在那个用户下
print(p.cpu_times) #返回 占用cup的信息
运行效果
IP地址处理模块
主要是使用IPy这个包 ,使用这个库,可以处理绝大部分IPV6和IPV4的网络和地址
Dns模块
主要是使用dns工具包,可以查询动态更新ZONEx信息,所谓dns服务就是将域名转换为ip地址,
- A记录 :将主机名转换成IP地址
- MX记录 :邮件交换记录,定义邮件服务器的域名,
- CNAME记录 ,指别名记录,实现域名间的映射
- NS记录 标记区域的域名服务器及授权子域;
- PTR记录 反向解析,与A记录相反,将IP转换成主机名
- SOAj记录,SOA标记,一个起始授权区的定义
常见解析类型示例说明
常见的DNS解析类型包括 A、MX、NS、CNAME等利用dnspython的dnsresoler.
query方法可以简单实现这些DNS类型的查询,为后面要实现的功能提供数据来源。例如一个使用DNS轮询业务的域名进行可用性监控,需要得到当前的解析结果。
邮件发送模块
- 简单邮件发送
import smtplib
HOST="smtp.qq.com"
SUBJECT="CES"
FROM="1174115923@qq.com"
TO="1298391806@qq.com"
text="摘星"
BODY="\\n".join(
("来自:%s"%FROM,"目的地:%s"%TO,"项目:%s"%SUBJECT,"text: %s"%text)
).encode(encoding="utf-8") # 解决编码问题
server=smtplib.SMTP(HOST)
server.login("1174115923@qq.com","iyjohyjovxrsjbfa")
server.sendmail(FROM,[TO],BODY)
server.quit()```
以上是关于初识Python自动化运维的主要内容,如果未能解决你的问题,请参考以下文章