shell实战之:mysql index文件检查机制

shell实战之:mysql index文件检查机制,第1张

本文将重点讲述 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/29512

mysql

-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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5905478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存