文档章节

获取系统信息

jk409
 jk409
发布于 2015/06/10 14:28
字数 857
阅读 134
收藏 7

1.python

import os,inspect,socket,time,pymysql
num = 0
class Mysql:
    def __init__(self,host,user,password,db):
        self.cnn = pymysql.connect(host=host,user=user, passwd=password, db=db, charset='utf8')
        self.cur= self.cnn.cursor()

    def run(self,sql):
        self.cur.execute(sql)

    def cmd(self,sql):
        self.cur.execute(sql)
        return self.cur.fetchall()

    def commit(self):
        self.cnn.commit()

    def close(self):
        self.cur.close()
        self.cnn.close()

class mon:
    def __init__(self):
        self.db_file='./db.json'
        self.data={}

    def getAmber(self):
        global num
        num+=1
        return num

    def getDate(self):
        return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

    def getProcess(self):
        return os.popen('ps -ef |wc -l').readlines()[0].split()[0]

    def getDisk(self):
        return os.popen("df -m |grep '/$'").readlines()[0].split()

    def getMem(self):
        return os.popen('free -m').readlines()[1].split()[1:4]

    def getSwap(self):
        return os.popen('free -m').readlines()[3].split()[1:]

    def getLoad(self):
        return os.popen('uptime').readlines()[0].split()[-3:]

    def getHost(self):
        return socket.gethostname()

    def getUser(self):
        return os.popen('uptime').readlines()[0].split()[3]

    def getRuntime(self):
        return os.popen('uptime').readlines()[0].split()[2]

    def getSystem(self):
        return os.popen('cat /etc/redhat-release').readlines()[0].split('\n')[0]

    def getKerner(self):
        return os.popen('uname -r').readlines()[0].split('\n')[0]


    def run(self):
        for fun in inspect.getmembers(self,predicate=inspect.ismethod):
            if fun[0][:3] == 'get':
                #print fun[1]()
                self.data[fun[0][3:]] = fun[1]()
        #print self.data
        return self.data
        #file(self.db_file,'a').write("%s\n" % self.data)
        time.sleep(15)
if __name__ == "__main__":
    mysql=Mysql('192.168.0.58','root','123456','host')
    while 1:
        res= mon().run()
        memTotal=int(res['Mem'][0])
        diskTotal=int(res['Disk'][0])
        memFree=int(res['Mem'][2])
        diskFree=int(res['Disk'][2])
        cpuPercent=int(res['Process'])
        ip=os.popen("ifconfig |grep  'Bcast' |awk -F: '{print $2}'").readlines()[0].split()[0]
        print('-------------------',ip)
        ress=mysql.cmd('select * from hostinfo where ip="%s"'%ip)
        ress=list(ress[0])
        for i in ress[3:]:
            lists=eval(i)
            print(lists)
            lists['data'].pop(0)
            lists['data'].append(eval(lists['name']))
            sqls='update hostinfo set %s = "%s" where ip="%s"'%(str(lists['name']),lists,ip)
            mysql.cmd(sqls)
        mysql.commit()
        print('------------------------------------------------')
        time.sleep(30)

2.

[root@localhost ~]# cat ./agent/mon.py
import os,inspect,socket,time,pymysql
num = 0
class Mysql:
    def __init__(self,host,user,password,db):
        self.cnn = pymysql.connect(host=host,user=user, passwd=password, db=db, charset='utf8')
        self.cur= self.cnn.cursor()

    def run(self,sql):
        self.cur.execute(sql)

    def cmd(self,sql):
        self.cur.execute(sql)
        return self.cur.fetchall()

    def commit(self):
        self.cnn.commit()

    def close(self):
        self.cur.close()
        self.cnn.close()

class mon:
    def __init__(self):
        self.db_file='./db.json'
        self.data={}

    def getAmber(self):
        global num
        num+=1
        return num

    def getDate(self):
        return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

    def getProcess(self):
        return os.popen('ps -ef |wc -l').readlines()[0].split()[0]

    def getDisk(self):
        return os.popen("df -m |grep '/$'").readlines()[0].split()

    def getMem(self):
        return os.popen('free -m').readlines()[1].split()[1:4]

    def getSwap(self):
        return os.popen('free -m').readlines()[3].split()[1:]

    def getLoad(self):
        return os.popen('uptime').readlines()[0].split()[-3:]

    def getHost(self):
        return socket.gethostname()

    def getUser(self):
        return os.popen('uptime').readlines()[0].split()[3]

    def getRuntime(self):
        return os.popen('uptime').readlines()[0].split()[2]

    def getSystem(self):
        return os.popen('cat /etc/redhat-release').readlines()[0].split('\n')[0]

    def getKerner(self):
        return os.popen('uname -r').readlines()[0].split('\n')[0]


    def run_res(self):
        for fun in inspect.getmembers(self,predicate=inspect.ismethod):
            if fun[0][:3] == 'get':
                #print fun[1]()
                self.data[fun[0][3:]] = fun[1]()
        #print self.data
        return self.data
        #file(self.db_file,'a').write("%s\n" % self.data)

    def run(self):
        mysql=Mysql('192.168.0.58','root','123456','host')
        while 1:
            print('------------ok')
            res= mon().run_res()
            ts=int(time.time())
            memTotal=int(res['Mem'][0])
            diskTotal=int(res['Disk'][0])
            memFree=int(res['Mem'][2])
            diskFree=int(res['Disk'][2])
            cpuPercent=int(res['Process'])
            ip=os.popen("ifconfig |grep  'Bcast' |awk -F: '{print $2}'").readlines()[0].split()[0]
            #----------------------------------- 
            sqls="insert into hostinfo (ip,time,cpuPercent,memTotal,memFree,diskTotal,diskFree) values('%s',%s,%s,%s,%s,%s,%s)"
            mysql.cmd(sqls%(ip,ts,cpuPercent,memTotal,memFree,diskTotal,diskFree))
            mysql.commit()
            time.sleep(60)
if __name__ == "__main__":
    mon().run()

3.windos

__author__ = 'Administrator'
import os
import win32api
import win32con
import wmi
import time
import sys
sys.path.append('./')
import sql

mysql=sql.Mysql('127.0.0.1','root','123456','host')
def getSysInfo(wmiService = None):
    result = {}
    if wmiService == None:
        wmiService = wmi.WMI()
    # cpu
    for cpu in wmiService.Win32_Processor():
        timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        result['cpuPercent'] = cpu.loadPercentage
    # memory
    cs = wmiService.Win32_ComputerSystem()
    os = wmiService.Win32_OperatingSystem()
    result['memTotal'] = int(int(cs[0].TotalPhysicalMemory)/1024/1024)
    result['memFree'] = int(int(os[0].FreePhysicalMemory)/1024)
    #disk
    result['diskTotal'] = 0
    result['diskFree'] = 0
    for disk in wmiService.Win32_LogicalDisk(DriveType=3):
        result['diskTotal'] += int(disk.Size)
        result['diskFree'] += int(disk.FreeSpace)
    result['diskTotal'] = int(result['diskTotal']/1024/1024)
    result['diskFree'] = int(result['diskFree']/1024/1024)
    return result

if __name__ == '__main__':
    wmiService = wmi.WMI()
    while 1:
        #timestamp = time.strftime('%Y-%m-%d %H:%M', time.localtime())
        timestamp = int(time.time())
        cpuPercent=getSysInfo(wmiService)['cpuPercent']
        memTotal=getSysInfo(wmiService)['memTotal']
        memFree =getSysInfo(wmiService)['memFree']
        memFree= memTotal  - memFree
        diskTotal=getSysInfo(wmiService)['diskTotal']
        diskFree =getSysInfo(wmiService)['diskFree']
        try:
            sqls="insert into  `hostinfo` (ip,time,cpuPercent,memTotal,memFree,diskTotal,diskFree) values('%s',%s,%s,%s,%s,%s,%s);"%('127.0.0.1',timestamp,cpuPercent,memTotal,memFree,diskTotal,diskFree)
            mysql.cmd(sqls)
            mysql.commit()
            print('----------------------------------------------OK')
        except:
            print('----------------------------------------------Faile')
        time.sleep(60)


© 著作权归作者所有

上一篇: 搭建svn版本控制
下一篇: 时间戳前
jk409
粉丝 22
博文 159
码字总数 38443
作品 0
深圳
后端工程师
私信 提问
Python学习笔记-系统性能信息模块psutil

系统性能信息模块 psutil: 参考:https://github.com/giampaolo/psutil 安装psutil模块: [root@kurol ~]# python36 -m easyinstall -i http://pypi.douban.com/simple/ psutil 1、获取系统......

谢育政
2018/06/26
0
0
Python自动化运维一之psutil

1.1系统性能信息模块psutil 1.1.1下载安装psutil 1、 wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificate 2、 tar -xf psutil-2.0.0.tar.g......

hb131425
2018/06/26
0
0
SNMP系统信息获取工具onesixtyone

SNMP系统信息获取工具onesixtyone 通过SNMP服务,渗透测试人员可以获取大量的设备和系统信息。在这些信息中,系统信息最为关键,如操作系统版本、内核版本等。Kali Linux提供一个简易SNMP扫描...

大学霸
2017/10/26
0
0
Python 获取系统信息模块psutil(转载)

一、psutil模块 1. psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,...

sktj
2018/01/19
0
0
java --webservice安全验证

公司的项目完结了,总结下接口安全性问题 webservice安全性验证 思路: 1.移动端启动app后请求的第一个接口是:获取系统消息 请求参数:无 请求头部信息添加 "user-appid":"123456" 这个键值...

求是科技
2016/01/13
107
2

没有更多内容

加载失败,请刷新页面

加载更多

Tedis:基于 TiKV 构建的 NoSQL 数据库

作者介绍: 陈东明,饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及饿了么基础架构研发工作。曾任百度架构师,负责百度即时通讯产品的架构设计。具有丰富的大规模系统构 ...

TiDB
22分钟前
0
0
linux命令

ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单。如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件...

WinkJie
29分钟前
0
0
你需要的物流运输类报表,这里都有

你需要的物流运输类报表,都在这里 葡萄城报表模板库是一款免费的报表制作、学习和参考工具,包含了超过 200 张高质量报表模板,涵盖了 16 大行业和 50 多种报表类型,为 30 余万报表开发者提...

葡萄城技术团队
36分钟前
1
0
像Java SE一样编写Java EE(ddd探索)

今天主要改写昨天的组合模式成Web系统。 容器接口为 public interface TreeProduct { /** * 展示所有产品 * @return */ List<TreeProduct> allProducts();...

算法之名
38分钟前
0
0
Django Model 模型建立

Django Model 模型 Django Model层是Django的数据模型层,每一个Model类就是数据库中的一张表; 我们需要注意下面几点: model一般都是定义在不同的APP的models.py模块文件中,可以是一个,也...

彩色泡泡糖
46分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部