- 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)
来源: http://www.phpxs.com/code/1005021/