监控CPU并将监控的结果数据插入mysql

#! /bin/bash

#每5s监听内存的使用情况,并将统计结果插入到mysql数据库

logPath="/export/home/itms/logs/log"
errPath="/export/home/itms/logs/err"

#定义func函数,将查询结果插入到mysql数据表中
func()
{
while true
do
Mem=free -m|sed -n '2p'|awk '{print ((($2-$6-$7)/$2))}'

		date=`date +%s`
		
		#因为IP是字符串类型,所以要加""将IP的字段转换为字符串格式,\是进行转义的意思
		IP=\"`ifconfig|sed -n "2p"|awk '{print $2}'`\"
		
		#-e  //执行mysql的sql语句(增删改查以及建表等语句)
		mysql -uroot -p123456 ITMS -e "insert into Mem values($date,$IP,$Mem);" 2>>$errPath 1>>$logPath
		#当插入语句执行成功一次,就退出,此处主要测试while循环语句的用法
		#[ $? -eq 0 ]&&break
		sleep 5
	done
}

#查看Mem数据表是否存在
mysql -uroot -p123456 ITMS -e "select * from Mem where gathertime='1'" 2>>$errPath 1>>$logPath

#如果数据表Mem不存在,需要新创建Mem数据表
if [ $? -ne 0 ];then
	mysql -uroot -p123456 ITMS -e "create table Mem(
		gathertime int(10) not null,
		ip varchar(20) not null,
		memvalue double(9,8) not null
	);"
	#如果数据表Mem创建失败,继续创建
	if [ $? -ne 0 ];then
		while true
		do
			mysql -uroot -p123456 ITMS -e "create table Mem(
				gathertime int(10) not null,
				ip varchar(20) not null,
				memvalue double(9,8) not null
			);"
			#此处一定要有数据表Mem是否创建成功的判断,否则会一直在执行数据表的创建
			#判断数据表Mem创建是否成功,成功的话,跳出循环语句
			[ $? -eq 0 ]&&break
			sleep 5
		done
	else
		#如果创建成功,进行内存状态监控并入表
		func;
	fi
else
	func;
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值