首页 > 数据库 > MySQL > 正文

老鸟带你开发专业规范的MySQL启动脚本

2020-01-18 20:41:49
字体:
来源:转载
供稿:网友

每一个合格的Linux运维人员都应该做到熟练或精通Shell脚本编程,因为Shell脚本语言差不多是所有编程语言里最简单的语言,如果Shell脚本不行,意味着运维之路可能还没开始就将要终结。――老男孩老师

#!/bin/bash# chkconfig: 2345 64 36 #配置系统自启动# description: A very fast and reliable SQL database engine.############################################################### File Name: mysqld# Version: V1.0# Author: oldboy# Organization: www.oldboyedu.com# Created Time : 2018-06-05 08:58:19###############################################################引入系统函数库. /etc/init.d/functions#基础路径定义basedir='/application/mysql'bindir='/application/mysql/bin'lockdir='/var/lock/subsys'                    lock_file_path="$lockdir/mysql"mysqld_pid_file_path='$basedir/data/`uname -n`.pid'#成功提示函数log_success_msg(){  #action为特殊的提示函数,$@为所有参数。  action "SUCCESS! $@" /bin/true}#失败提示函数log_failure_msg(){  action "ERROR! $@" /bin/false } #mysql启动函数start(){  echo $"Starting MySQL"  #测试mysqld_safe是否可执行  if test -x $bindir/mysqld_safe  then    #后台执行启动mysql命令    $bindir/mysqld_safe &>/dev/null &    #获取返回值    retval=$?    #判断返回值是否为0    if [ $retval -eq 0 ]    then      #调用成功提示函数。      log_success_msg "mysql Startup"      if test -w "$lockdir" #判断锁目录是否可写。      then        touch "$lock_file_path" #创建锁文件。      fi      return $retval #给返回值是专业的表现。    else      log_failure_msg "MySQL Startup" #调用失败函数提示。      return $retval    fi  else    log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"  fi}#停止MySQL函数。stop(){  #判断mysql pid file大小是否为0。  if test -s "$mysqld_pid_file_path"  then    #读取pidfile    mysqld_pid=`cat "$mysqld_pid_file_path"`    #判断mysql pid对应的进程是否存在。    if (kill -0 $mysqld_pid 2>/dev/null)    then      echo $"Shutting down MySQL"      kill $mysqld_pid #停止MySQL命令。      retval=$?      if [ $retval -eq 0 ]      then        log_success_msg "MySQL Stop" #调用停止成功函数。        if test -f "$lock_file_path"        then          rm -f "$lock_file_path" #删除锁文件。        fi        return $retval      else        log_failure_msg "MySQL Stop."        return $retval      fi    else      log_failure_msg "MySQL server process mysqld_pid is not running!"      rm "$mysqld_pid_file_path"    fi   else    log_failure_msg "MySQL server PID file is null or not exist!"  fi}#接收传参判断并执行相应函数。case "$1" in  start)    start    retval=$?    ;;  stop)    stop    retval=$?    ;;  restart)    stop    sleep 2 #这里很重要,要休息一下。    start    retval=$?    ;;  *)    echo $"Usage:$0 {start|stop|restart}"    exit 2esacexit $retval  #执行脚本后,有返回值才更专业。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表