lipeng 发表于 2018-8-19 08:26:25

企业级Shell案例(一)

#!/bin/bash  
path=/usr/local/sbin
  
MAIL_GROUP="123@qq.com 456@163.qq.com"
  
PHONE_GROUP="10086 10010"
  
LOG_FILE="/tmp/mysql_check.log"
  
USER=root
  
PASSWD=123456
  
PORT=3306
  
MYSQLCMD="mysql -u$USER -p$PASSWD -S /tmp/mysql.sock"
  

  
error=(1008 1007 1062)
  
RETVAL=0
  
[ ! -d $path ] && mkdir -p $path
  
JudgeError(){
  
    for((i=0;i /dev/null
  
    if [ $? -ne 0];then
  
      status=300
  
    fi
  
    if [ "${status}" == "Yes" -a "${status}" == "Yes" -a ${stauts} -lt 120]
  
    then
  
      echo "Mysql slave is ok!"
  
      return 0
  
    else
  
      echo "Mysql slave is failed."
  
    fi
  
}
  

  
MAIL(){
  
    local SUBJECT_CONTENT=$1
  
    for MAIL_USER in `echo $MAIL_GROUP`
  
    do
  
      mail -s &quot;$SUBJECT_CONTENT&quot; $MAIL_USER < $LOG_FILE
  
    done
  
}
  

  
PHONE(){
  
    for PHONE_USER in `echo $PHONE_GROUP`
  
    do
  
      TITLE=$1
  
      CONTACT=$PHONE_USER
  
      send_message # 发送信息的方法自行添加!
  
    done
  
}
  

  
SendMsg(){
  
    if [ $1 -ne 1 ];then
  
      RETVAL=1
  
      NOW_TIME=`date +&quot;%Y-%m-%d %H:%M:%S&quot;`
  
      SUBJECT_CONTENT=&quot;mysql slave is error, error is $2, ${NOW_TIME}.&quot;
  
      echo -e &quot;$SUBJECT_CONTENT&quot;|tee $LOG_FILE
  
      MAIL $SUBJECT_CONTENT
  
      PHONE $SUBJECT_CONTENT $NOW_TIME
  
    else
  
      echo &quot;Mysql slave status is ok.&quot;
  
      RETVAL=0
  
    fi
  
    return $RETVAL
  
}
  

  
main(){
  
    while true
  
    do
  
      CheckDB
  
      SendMsg $?
  
      sleep 30
  
    done
  
}
  

  
main


页: [1]
查看完整版本: 企业级Shell案例(一)