监测服务器状态
获取系统性能信息
1、CPU信息:
Linux操作系统的CPU利用的几个部分:
User Time;SystemTime;Wait IO;Idle
psutil.cpu_times()
psutil.cpu_times().user
psutil.cpu_count()
2、内存信息
psutil.virtual_memory() #查看内存完整信息
psutil.swap_memory() #查看swap分区信息
3、磁盘信息
psutil.disk_io_counters() #获取硬盘IO总数
psutil.disk_usage(‘/’) #获取分区的使用情况
psutil.disk_io_counters(perdisk=True)#获取单个分区的IO个数
4、网络信息
psutil.net_io_counters #查看网络总的IO数
5、其他信息
psutil.users() #查看当前使用用户
psutil.boot_time() #查看当前开机时间
datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d%H:%M:%S") #使用datetime模块格式时间戳
系统进程管理方法:
1、 进程信息
p = psutil.Process(进程ID) #实例化一个Process对象,
p.name() #进程名
p.exe() #进程bin路径
p.cwd() #进程目录的绝对路径
p.status() #进程状态
p.create_time() #进程创建时间
p.uids() #进程uid信息
p.gids() #进程gid信息
2、地址处理模块IPy
通过version()方法区分IP地址是IP4或者IP6类型
例:IP(‘8.8.8.8’).version()
输出该网段的所有IP地址:
ip=IP(‘192.168.118.0/24’)
for x in ip:
print(x)
定制不同输出类型的网段,输出类型为string
ip=IP(‘192.168.118.0/24’)
ip.strNormal(0) 无返回,如192.168.118.0
ip.strNormal(1)prefix格式,如192.168.118.0/24;
ip.strNormal(2),decimalnetmaskt格式,如192.168.118.0/255.255.255.0
ip.strNormal(3),lastIP格式,如192.168.1.0-192.168.118.255
网络信息检测方法:
判断输入的IP或子网返回网络、掩码、广播、反响解析、子网数和IP类型等信息
#!/bin/env python from IPy import IP ips=input(‘please input you IP address\n‘) ip=IP(ips) if(ip.len()>1): print(‘net: %s‘ % ip.net()); print(‘netmask: %s‘ % ip.netmask()) print(‘broadcast: %s‘% ip.broadcast()) print(‘reverse address %s‘ % ip.reverseNames()[0]) print(‘subnet: %s‘ % ip.len()) else: print(‘reverse address %s‘ % ip.reverseNames()); print(‘heaxdemical: %s‘ % ip.strHex()); print(‘binary ip: %s ‘ % ip.strBin()); print(‘iptype :%s‘ % ip.iptype()); |
dnspython模块解析域名
A记录
#!/usr/bin/env python from dns import resolver domain=input(‘please input you domain name:\n‘) #请输入域名地址 A=resolver.query(domain,‘A‘) #指定类型为A记录 for i in A.response.answer: for j in i.items: print(j.address) |
MX记录
#!/usr/bin/env python from dns import resolver domain = input(‘please input domain name: ‘) MX = resolver.query(domain,‘MX‘) for i in MX: print(‘MX preference: ‘,i.preference,‘mail exchange: ‘,i.exchange) |
NS记录
#!/usr/bin/env python from dns import resolver domain = input(‘pelase input you domain name: ‘) NS = resolver.query(domain,‘NS‘) for i in NS.response.answer: for j in i.items: print (j.to_text()) |
CNAME记录
#!/usr/bin/env python from dns import resolver domain = input(‘pelase input you domain name: ‘) NS = resolver.query(domain,‘NS‘) for i in NS.response.answer: for j in i.items: print (j.to_text()) |