自动化运维 python 批量监控服务器_1、python自动化运维——监测服务器状态

监测服务器状态

获取系统性能信息

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())

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实用自动化运维Python脚本分享主要是为了提高运维工作的效率和准确性,简化重复性的操作,节省人力和时间成本。Python作为一种强大的脚本语言,具有易学易用、丰富的库和模块支持等优点,非常适合用于运维自动化。 首先,实用自动化运维Python脚本可以对服务器进行批量管理和监控。脚本可以通过SSH远程连接服务器,执行各种操作,如批量安装软件、配置服务器、部署应用等。同时,可以编写脚本监控服务器的性能指标,如CPU、内存、磁盘等,及时发现问题并进行处理。 其次,实用自动化运维Python脚本可以进行日志分析和故障排查。通过解析服务器和应用程序的日志文件,可以自动化地检测错误信息,分析日志文件的结构和内容,帮助快速定位问题的根本原因。这在大规模分布式系统中尤为重要,可以快速捕捉异常和故障,提高故障处理的效率。 另外,实用自动化运维Python脚本还可以进行配置管理和版本控制。通过脚本,可以自动备份和还原配置文件,实现配置的快速恢复和管理。同时,可以使用版本控制工具(如Git)来管理配置文件的变更,确保对服务器环境的改动有记录可查。 最后,实用自动化运维Python脚本可以进行应用部署和上线。通过编写脚本,可以自动化地将应用程序打包、上传、解压、配置等一系列操作,实现一键部署。还可以结合CI/CD工具实现自动化的持续集成和持续部署,提高开发和运维之间的协作效率。 总结来说,实用自动化运维Python脚本可以帮助运维人员简化工作流程,减少重复劳动,提高效率和准确性。同时,Python的简洁性和灵活性也使得运维人员可以根据实际需求编写出适合自己环境的自动化脚本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值