首页 > 代码库 > 获取centos6.5系统信息脚本
获取centos6.5系统信息脚本
最近想尝试做两件比较重要的事情,第一是用python写个cmdb,第二还是用python写个小型监控系统,下面是获取系统信息的脚本:
#!/usr/bin/env python # coding:utf-8 import json import subprocess import psutil import socket import time import re import platform import requests device_white = [‘eth0‘,‘eth1‘, ‘eth2‘, ‘eth3‘, ‘em1‘] headers = {"Content-Type": "application/json"} def get_hostname(): return socket.gethostname() def get_device_info(): ret = [] for device, info in psutil.net_if_addrs().iteritems(): if device in device_white: device_info = {‘device‘: device} for snic in info: if snic.family == 2: device_info[‘ip‘] = snic.address elif snic.family == 17: device_info[‘mac‘] = snic.address ret.append(device_info) return ret def get_cpuinfo(): ret = {"cpu": ‘‘, ‘num‘: 0} with open(‘/proc/cpuinfo‘) as f: for line in f: line_list = line.strip().split(‘:‘) key = line_list[0].rstrip() if key == "model name": ret[‘cpu‘] = line_list[1].lstrip() if key == "processor": ret[‘num‘] += 1 return ret def get_disk(): cmd = """/sbin/fdisk -l|grep Disk|egrep -v ‘identifier|mapper|Disklabel‘""" disk_data = http://www.mamicode.com/subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)" + ".join(partition_size) def get_Manufacturer(): cmd = """/usr/sbin/dmidecode | grep -A6 ‘System Information‘""" ret = {} manufacturer_data = http://www.mamicode.com/subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)"Manufacturer" in line: ret[‘manufacturers‘] = line.split(‘: ‘)[1].strip() elif "Product Name" in line: ret[‘server_type‘] = line.split(‘: ‘)[1].strip() elif "Serial Number" in line: ret[‘st‘] = line.split(‘: ‘)[1].strip().replace(‘ ‘,‘‘) elif "UUID" in line: ret[‘uuid‘] = line.split(‘: ‘)[1].strip() return ret #return manufacturer_data.stdout.readline().split(‘: ‘)[1].strip() # 出厂日期 def get_rel_date(): cmd = """/usr/sbin/dmidecode | grep -i release""" data = http://www.mamicode.com/subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)" ".join(platform.linux_distribution()) def get_innerIp(ipinfo): inner_device = ["eth0", "bond0"] ret = {} for info in ipinfo: if info.has_key(‘ip‘) and info.get(‘device‘, None) in inner_device: ret[‘ip‘] = info[‘ip‘] ret[‘mac_address‘] = info[‘mac‘] return ret return {} def get_Memtotal(): with open(‘/proc/meminfo‘) as mem_open: a = int(mem_open.readline().split()[1]) return a / 1024 def run(): data = http://www.mamicode.com/{}"{cpu} {num}".format(**cpuinfo) data[‘server_disk‘] = get_disk() data.update( get_Manufacturer()) data[‘manufacture_date‘] = get_rel_date() data[‘os‘] = get_os_version() data[‘server_mem‘] = get_Memtotal() if "VMware" in data[‘manufacturers‘]: data[‘vm_status‘] = 0 else: data[‘vm_status‘] = 1 res[‘params‘]=data res[‘jsonrpc‘] = "2.0" res["id"] = 1 res["method"]= "server.radd" # print res # for k,v in data.iteritems(): # print k, v send(res) def send(data): url = "http://192.168.63.182:2000/api" r = requests.post(url, headers=headers,json=data) print r.status_code print r.content if __name__ == "__main__": run()
获取centos6.5系统信息脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。