day01-系统基础信息模块

前言:2015年,由于大规模采用云平台虚拟机部署应用,每套应用系统的MySQl、接口机、WEB服务器、文件服务器需要经常进行版本升级、配置更新、安全补丁加固、iptables调整、配置核实,大量的手工操作比较繁琐,需要考虑自动化运维手段,而Python是个比较好的选择,在当当网上看到一本《Python自动化运维 技术与最佳实践》,OK,下单买回学习。

不会开发的运维,竞争力会显得更加单薄,尽早步入运维开发是必然选择。

一、系统信息性能管理psutil模块:

1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统. 

import psutil
print(psutil.cpu_times())
#scputimes(user=650613.02, nice=22.14, system=154916.5, idle=16702285.26, iowait=68894.55, irq=3.38, softirq=7075.65, steal=0.0, guest=0.0)
print(psutil.cpu_count())
print(psutil.cpu_count(logical=False))
#获取CPU使用率
print(psutil.cpu_percent())

#内存信息
mem = psutil.virtual_memory()
#svmem(total=4018601984, available=1066205184, percent=73.5, used=3904004096, free=114597888, active=3302174720, inactive=426078208, buffers=156520448, cached=795086848)
#查看内存大小
print(mem.total/1024/1024/1024)
#向上取整
print(round((mem.total/1024/1024/1024)))
#计算空闲内存
print(mem.free/mem.total)
print('%.2f%%' % (mem.free/mem.total * 100))
#计算可用内存
print('%.2f%%' % (mem.available/mem.total * 100))

#获取磁盘分区信息
print(psutil.disk_partitions())
print(psutil.disk_usage('\\'))
print(psutil.disk_usage('/'))

继续完善,批处理结果后系统输出,注意这是取单机信息,并非用于CMDB管理

物理CPU个数: 2
cup使用率: 37.5%
物理内存: 11.9 G
剩余物理内存: 7.13 G
物理内存使用率: 40 %
系统启动时间: 2015-09-17 17:52:05
当前有1个用户,分别是 fox
网卡接收流量 221.24 Mb 网卡发送流量 216.70 Mb
-----------------------------磁盘信息-------------------------------------
略
-----------------------------进程信息-------------------------------------
略

二、IP地址管理模块IPY 

       IPy模块提供了专门针对IPV4地址与IPV6地址的类与工具,可以帮助实现计算子网掩码、网络掩码、广播地址、子网数、IP类型等

from IPy import IP
ip_s = input('Please input an IP or net-range: ')
ips = IP(ip_s)
if len(ips) > 1:
    print('net: %s' % ips.net())
    print('netmask: %s' % ips.netmask())
    print('broadcast: %s' % ips.broadcast())
    print('reverse address: %s' % ips.reverseNames()[0])
    print('subnet: %s' % len(ips))
else:
    print('reverse address: %s' % ips.reverseNames()[0])
print('hexadecimal: %s' % ips.strHex())
print('binary ip: %s' % ips.strBin())
print('iptype: %s' % ips.iptype())
输入  Please input an IP or net-range: 192.168.80.0/24
输出如下
net: 192.168.80.0
netmask: 255.255.255.0
broadcast: 192.168.80.255
reverse address: 80.168.192.in-addr.arpa.
subnet: 256
hexadecimal: 0xc0a85000
binary ip: 11000000101010000101000000000000
iptype: PRIVATE
注,网络维护人员很熟配置,IP规划可能用不上这个工具

三、DNS处理模块dnspython  

简介:dnspython – 是python实现的一个DNS工具包,利用其查询功能来实现dns的服务监控及解析结果的校验

安装dnspython    pip install dnspython

 

 

上一篇:202. 快乐数


下一篇:linux性能监控 + Sendmail 发邮件