您的位置:首页 > 运维架构 > Shell

shell脚本获取CPU利用率并记录到远程服务器的MYSQL数据库

2015-03-20 23:33 459 查看

一、shell脚本讲解

其实很简单,首先定义各个变量,主要有mysql的ip、 username、password以及database、table。之后通过date以指定格式输出得到timestamp格式的时间;利用top和管道命令得到cpu的空闲率,进而得到cpu的使用率。
之后利用mysql远程登录到数据库,将刚刚收集的数据插入到数据库中即可。代码如下:
#!/bin/bash
mysql_ip="192.168.1.200"
mysql_username="root"
mysql_pwd="p@5sw0rd"
mysql_database="web01"
monitor_table="cpu"
time=$(date '+%Y-%m-%d %H:%M:%S')
cpu_idle=$(top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d .)
cpu=$(echo 100 - $cpu_idle|/usr/bin/bc)
echo $cpu
echo $cpu_idle
echo $time
/usr/bin/mysql -h $mysql_ip -u$mysql_username -p$mysql_pwd $mysql_database -e "insert into $monitor_table values ('','$time','$cpu')";


二、mysql中报错无法在该IP登陆解决办法

首先登陆mysql:
mysql -u root -pxxxx

输入:
grant all privileges on your_database.* to root@'192.168.1.200' identified by 'p@5sw0rd'
代码解释:将your_database数据库中的所有表的全部权限授权给root用户,允许root用户在192.168.1.200这个ip以密码‘p@5sw0rd’进行登陆;

三、运行几遍脚本,即可在数据库中看到插入的结果

/bin/bash cpu.sh

mysql> select * from cpu;

+----+---------------------+-----+

| id | time | cpu |

+----+---------------------+-----+

| 1 | 2015-03-16 15:58:32 | 1 |

| 2 | 2015-03-16 15:58:33 | 1 |

| 3 | 2015-03-16 15:58:34 | 1 |

| 4 | 2015-03-16 15:58:35 | 1 |

| 5 | 2015-03-16 15:58:37 | 1 |

| 6 | 2015-03-16 15:58:38 | 1 |

| 7 | 2015-03-16 15:58:39 | 1 |

| 8 | 2015-03-16 15:58:40 | 1 |

| 9 | 2015-03-16 15:58:41 | 1 |

+----+---------------------+-----+

9 rows in set (0.00 sec)

之后可以使用 crontab -e 来加入到定时任务。再之后就可以在web中查询数据库然后展示CPU利用率了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐