合格linux运维人员必会的30道shell编程实践题及讲解-07

企业实战题7:
开发mysql多实例启动脚本:
已知mysql多实例启动命令为:mysqld_safe--defaults-file=/data/3306/my.cnf &
停止命令为:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sockshutdown
请完成mysql多实例启动启动脚本的编写
要求:用函数,case语句、if语句等实现。

我的脚本====================

 

#!/bin/bash
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
MYUSER=root
MYPASS=oldboy123
SOCKET=/data/3306/mysql.sock
MYCNF=/data/3306/my.cnf
MYCMD="mysql -u$MYUSER -p$MYPASS -S$SOCKET"
MYADMIN="mysqladmin -u$MYUSER -p$MYPASS -S$SOCKET"

judge(){
  if [ $RETVAL -eq 0 ];then
    action "$1 mysql" /bin/true
  else
     action "$1 mysql" /bin/false
  fi
  return $RETVAL
}

start(){
  mysqld_safe --defaults-file=$MYCNF &>/dev/null &
  RETVAL=$?
  sleep 2
  judge start
}

stop(){
  $MYADMIN shutdown >/dev/null 2>&1
  RETVAL=$?
  judge stop
}

case "$1" in
   start)
       start
       ;;
   stop)
       stop
       ;;
   restart)
       stop
       sleep 3
       start
       ;;
   *)
       echo -e "\nUsage: $0 {start|stop|restart}\n"
       exit $RETVAL
esac

 

posted @ 2017-10-24 11:20  蓝瘦香菇の挨踢  阅读(191)  评论(0编辑  收藏  举报