返回顶部

收藏

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)

标签:python

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. Kaiser 发表 2018-03-07 16:00:00 [2018.03.08直播] Python之字典
  2. HH 发表 2018-03-05 01:10:57 DBA蹩脚编程能力-0003-批量执行SQL命令(视频)
  3. wkii 发表 2013-09-30 02:27:00 python学习笔记之列表和元组
  4. wkii 发表 2013-09-30 02:28:07 python学习笔记之字典
  5. wkii 发表 2013-09-30 02:29:20 python学习笔记之字符串
  6. wkii 发表 2013-09-30 02:29:20 python学习笔记之字符串
  7. Kaiser 发表 2018-03-03 16:00:00 [2018.03.04直播] Python之查找与排序
  8. 崔庆才 发表 2018-03-02 21:42:18 正则表达式中零宽断言的用法
  9. admin 发表 2018-03-02 08:28:47 #原创# flask+gevent提高flask的并发能力
  10. Kaiser 发表 2018-02-28 16:00:00 [2018.03.01直播] Python之列表
  11. 崔庆才 发表 2018-03-01 09:34:10 机器学习主要术语
  12. akun 发表 2018-02-28 13:34:49 如何快速构建一个 Python 模块项目(开源方案)

发表评论