本文将重点讲述 shell实战中的 mysql index 文件检查机制问题 请先看代码:
#!/bin/sh
def_check_index()
{
#code by scpman
#
#mail:
#需求
#
# 通过show master logs列出binlog文件序列如果顺序不对 或记录重复发告警 发邮件告警
# 查看mysql目录下的index文件 如果顺序不对 或记录重复发告警
#
#实现
#发送告警函数
def_send_mail()
{
msgip= #syslog服务器
ser_IP=`cat /etc/nf | grep E ifconfig_[em |bce ] | awk {print IP: $ } | sed n p ` #本机的ip
#echo $ 函数接收的第一个值
if [ n $ ] &&[ `echo $ |grep c chongfu ` gt ] #判断$ 是否在 并且统计下chongfu这个字符是否大于
then
echo /usr/bin/logger p h $msgip the services: $IP mysql index file $ #大于 说明有错误的 就得告警
exit
elif [ n $ ] &&[ `echo $ |grep c luanle ` gt ] #判断$ 是否在 并且统计下luanle这个字符是否大于
then
echo /usr/bin/logger p h $msgip the services: $IP mysql index file $ #大于 说明有错误的 就得告警
exit
else
echo ok
fi
}
# 判断index是否有重复的情况
def_index_is_one()
{
if [ n $ ]
then
static_index=$
def_send_mail `awk {a[$ ]++}END{for (j in a) print j a[j]} $static_index | awk v flag= $static_index {if($ >) print chongfu >$ } `
else
echo def_index_is_one $ is null!exit
exit
fi
}
#检查mysql目录下的index文件内容顺序是否正常
def_static_index_shunxu()
{
bzfile= /usr/dlm_db/mysql/zqtx bin index
current_line=`cat ${bzfile}|head n |sed e s# /zqtx bin ##g `
for i in `cat ${bzfile}`
do
if [ `echo $i|sed e s# /zqtx bin ##g ` lt $current_line ]
then
def_send_mail luanle:${bzfile}_${current_line}
exit
fi
current_line=`echo $i|sed e s# /zqtx bin ##g `
done
}
#检查mysql中show master logs的index文件内容顺序是否正常
def_masterlog_index_shunxu()
{
mysql uroot p s s e show master logs| awk {print $ } | sed e s/zqtx bin //g >/usr/dlm_db/mysql/flag_index
bzfile=/usr/dlm_db/mysql/flag_index
current_line=`cat ${bzfile}|head n `
for i in `cat ${bzfile}`
do
if [ $i lt $current_line ]
then
def_send_mail luanle:master_logs_${i}
exit
fi
current_line= $i
done
}
def_index_is_one /usr/dlm_db/mysql/zqtx bin index
def_static_index_shunxu
def_masterlog_index_shunxu
def_index_is_one /usr/dlm_db/mysql/flag_index
}
lishixinzhi/Article/program/MySQL/201311/29512mysql
-u
username
-p
password
#
连接mysql服务
show
databases
#
查看所有数据库
use
dbname
#选择一个数据库
show
tables
#
查看数据中所有的表
select
*
from
tablename
#
直接执行查询语句
比如某进程名为 mysqldps -x |grep mysqld | grep -v grepif [ $? -eq 0 ]then echo 正在运行else echo 没有运行fi欢迎分享,转载请注明来源:内存溢出
评论列表(0条)