CMDB学习之三数据采集
判断系统因为是公用的方法,所有要写基类方法使用,首先在插件中创建一个基类
将插件文件继承基类
思路是创建基类使用handler.cmd ,命令去获取系统信息,然后进行判断,然后去执行 磁盘 ,cpu,网卡,内存等信息的收集;
基类代码:
class BasePlugin:def get_os(self,handler,hostname):os = handler.cmd("查询操作系统的命令",hostname)# return osreturn 'win32'def process(self,handler,hostname):os = self.get_os(handler,hostname)if os == 'win32': #测试判断执行win32return self.win(handler,hostname)else:return self.linux(handler,hostname)def win(self,handler,hostname):#约束派生类必须实现win方法raise NotImplementedError('handler() must Implemented.')def linux(self,handler,hostname):#约束派生类必须实现Linux方法raise NotImplementedError('handler() must Implemented.')
disk.py ,cpu.py,memory.py,network.py 代码;
from .base import BasePluginclass Disk(BasePlugin):def win(self,handler,hostname):'''执行命令拿到结果磁盘:return:'''print("执行win方法")ret = handler.cmd('wmic diskdrive',hostname)[0:10]return retdef linux(self,handler,hostname):'''执行命令拿到结果磁盘:return:'''print("执行Linux方法")ret = handler.cmd('df -h',hostname)[0:10]return ret
from .base import BasePluginclass Memory(BasePlugin):def win(self,handler,hostname):'''执行命令拿到结果-内存:return:'''print("执行win方法")ret = handler.cmd('wmic memphysical list brief',hostname)[0:10]return retdef linux(self,handler,hostname):'''执行命令拿到结果-内存:return:'''print("执行Linux方法")ret = handler.cmd('free',hostname)[0:10]return ret
from .base import BasePlugin class CPU(BasePlugin):def win(self,handler,hostname):'''执行命令拿到结果-cpu:return:'''print("执行win方法")ret = handler.cmd('wmic cpu',hostname)[0:10]return retdef linux(self,handler,hostname):'''执行命令拿到结果-cpu:return:'''print("执行Linux方法")ret = handler.cmd('wmic cpu',hostname)[0:10]return ret
from .base import BasePlugin class Network(BasePlugin):def win(self,handler,hostname):'''执行命令拿到结果-网卡:return:'''print("执行win方法")ret = handler.cmd('ipconfig',hostname)[0:10]return retdef linux(self,handler,hostname):'''执行命令拿到结果-网卡:return:'''print("执行Linux方法")ret = handler.cmd('ifconfig',hostname)[0:10]return ret
最后测试执行结果
转载于:https://www.cnblogs.com/michael2018/p/10419637.html
CMDB学习之三数据采集相关推荐
- Linux学习之三-Linux系统的一些重要配置文件
Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0 ...
- matlab矩阵运算_MATLAB基础学习之三种基本运算
MATLAB学习之三种运算 MATLAB软件 一.基本算数运算 在MATLAB中有两种矩阵运算:右除/和左除.如果A矩阵是非奇异方阵,则B/A等效于B*inv(A),AB等效于inv(A)*B.注:i ...
- linux内核学习之三:linux中的32位与64位
linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...
- 智能会议系统(32)---WebRTC学习之三:录音和播放
WebRTC学习之三:录音和播放 VoiceEngine中与录音和播放相关的头文件有五个,如下表所示: 头文件 包含的类 说明 voe_base.h VoiceEngineObserver Voice ...
- 华为鸿蒙系统HarmonyOS学习之三:鸿蒙HarmonyOS 系统安全性
华为鸿蒙系统HarmonyOS学习之三:HarmonyOS 系统安全性 HarmonyOS(鸿蒙操作系统)采用全新的微内核设计,具有增强的安全性和低延迟.该微内核旨在简化内核功能,在内核外的用户模式下 ...
- 三年程序学习之三:(失业了)
老板的同学从广州过来的,然后不会写代码.曾经是学计算机硬件的.他过来主要是抓公司业务,公司想走正轨,想做站点建设外包工作.话说这人27和老板一样的年龄,当时就数落了他,为什么多年后你就成为了他的员工. ...
- 动态规划学习之三种方法解决斐波拉契数
斐波拉契数是一个很经典的问题,也会很多公司面试的考题,每个学习计算机的同学都会接触这个问题,尤其是在学习递归的时候,利用递归来解决斐波拉契数是很多教材采用的一个例子,所以很多同学一想到斐波拉契马上就会 ...
- 强化学习之三:双臂赌博机(Two-armed Bandit)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 深度学习之三:深度学习基本思想
目录: 一.概述 二.背景 三.人脑视觉机理 四.关于特征 4.1.特征表示的粒度 4.2.初级(浅层)特征表示 4.3.结构性特征表示 4.4.需要有多少个特征? 五.Deep Learnin ...
最新文章
- android ndk mac安装成功,Mac下Android Studio NDK 环境搭建并运行
- Java 性能优化之 String 篇
- CSS实现div悬浮框的代码(兼容IE6)
- 实现两个pawn的切换
- java 负数 位移运算_Java中的位移运算
- 如何用一套引擎搞定机器学习全流程?
- nginx动静分离配置_Nginx动静分离配置实例
- marathon新建应用映射端口限制
- IOMMU 虚拟IO地址和物理地址相关联
- Altium Designer,打开PCB文件,提示:File type not recognised
- Android app修改IMEI号
- 态势感知平台分析流程
- mysql教学磁力链_价值1000元的磁力链搜索源码PHP+python+mysql 一键搭建
- win7计算机屏保后声音丢失,告诉你win7屏保怎么设置
- linux下动态域名的实践
- Jmeter(五)bayboy录制时弹窗“当前页面的脚本发生错误”解决办法
- HDU 2209 翻纸牌游戏 By Assassin 模拟
- 【搬运】黑苹果台式机机型选择指导 By 黑果小兵
- 魅族手机没有插耳机却显示耳机模式解决方案
- CST(Crypto Systems Toolkit) 7.1学习笔记-chapter6
热门文章
- 关于压缩工具 7z(7-zip) 的选项 -x(排除文件)的解读
- xampp mysql 查询很慢_如何开启mysql的慢查询机制
- linux安java,Linux安装Java
- 嵩天python笔记_嵩天Python学习笔记-05
- 数组做参数_C语言进阶之路:函数—数组参数!
- linux数组操作 增删改查,linuxea:go数组与数组增删改查(19)
- java post webservice_[java.webservice] 如何通过HttpPost从服务器上获得一个sessionid
- mysql ignore 1 lines_MYSQL使用笔记(1)
- 遮掩java_css之图片下方定位遮掩层
- 关于交换机的VLAN技术你了解多少?