领先的中文IT技术网站    IT技术从现在起飞

飞诺旗下: 技术社区 | 在线电子书 | 在线试题 | 资源下载 | 飞诺搜索 | 技术博客
用户名: 密   码:
   飞诺网 加入收藏
飞诺网 Mysql 新闻频道 开发频道 系统频道 服务器 网络频道 网络安全 Java频道 C/C++ PHP开发 电子书 资源下载 社 区 博 客 在线试题
数据库 Access Mysql Mssql Oracle Sybase FoxPro db2 数据库相关文章
编程开发 JAVA C/C++ C++ VC C语言 VB C# Delphi Foxpro 汇编 shell编程 游戏开发 软件工程师 WEB开发 PHP ASP Asp.net JSP AJAX CGI JavaScript HTML CSS 数据库 MSSQL Mysql Oracle Access Sybase DB2 sql2005 Office Word Excel Powerpoint Wps 认证考试 二级C语言 三级网络 程序员 网络工程师 思科认证

您当前的位置:飞诺网 >>  数据库 >>  Mysql >> mysql技术文章

自动检查mysql运行状态

www.firnow.com    时间 : 2008-07-29  作者:佚名   编辑:本站 点击:   [ 评论 ]


因主管要求在中心管理服务器上写一个脚本每天在规定时间自动检查公司所有mysql server运行状态,然后发到指定的邮箱。

我们公司所有mysql server版本为5.0.25,操作系统是centos 4.6,所有mysql server都是下载tar包重新编译。以下是我具体操作过程。
前提条件:
1.在每台mysql服务器上为中心管理服务器新建一个用户。以便它有权查看服务器的运行状况。
mysql>grant all ON *.* TO status@中心管理服务器ip IDENTIFIED BY '用户密码‘;
2.下载mysqlreport脚本
wget http://hackmysql.com/scripts/mysqlreport-3.5.tgz,解压,然后将mysqlreport复制到/usr/bin/目录下,以便于后期调用。
3.编写脚本,以下是我脚本内容。

#!/bin/sh
DATE=`date '+%Y%m%d%H%M'`//定义时间
ADMIN="zhang×××@gmail.com"//
STATUS_LOGS="/var/log/mysql_status.log"
PASSWORD="刚才新建的数据库密码"
PORT="3306"//数据库端口
IP="192.168.10.26 192.168.10.214 192.168.10.20 192.168.10.100 \192.168.10.105"//mysql server ip地址,请根据你的网络环境更改
if [ ! -f $STATUS_LOGS ];then
        /bin/touch $STATUS_LOGS
fi//建立日志文件
for i in $IP
        do
                HOSTNAME=$i
/bin/echo "================ mysql status analize for 192.168.10.214  date:$DATE====================">>$STATUS_LOGS
/bin/echo "==========================  Status For $HOSTNAME  ==================================">>$STATUS_LOGS
/usr/sbin/mysqlreport --user status --password $PASSWORD --host $IP >>$STATUS_LOGS
sleep 1
echo " ">>$STATUS_LOGS
done //循环导出mysql服务器运行状况资料

/bin/mail $ADMIN -s "Status Report For Server"<$STATUS_LOGS//将结果发送到指定邮箱
/bin/rm -f $STATUS_LOGS //删除日志,以免日志文件过大
/bin/touch $STATUS_LOGS //重建日志文件
将这个脚本放入排程中自动运行。
很简单一个脚本,


如果图片或页面不能正常显示请点击这里
mysql技术文章推荐文章

文章评论