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

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章