博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
老鸟带你开发专业规范的MySQL启动脚本
阅读量:6361 次
发布时间:2019-06-23

本文共 2829 字,大约阅读时间需要 9 分钟。

每一个合格的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    #执行脚本后,有返回值才更专业。
国内最佳Shell编程实战图书,《跟老男孩学习Linux运维:Shell编程实战》,京东有售。

转载地址:http://aiima.baihongyu.com/

你可能感兴趣的文章
简单演示 Oracle 数据库并发导致行级锁
查看>>
非阻塞socket调用connect, epoll和select检查连接情况示例
查看>>
《黑客与画家》读书笔记一
查看>>
演示热块——表数据块
查看>>
Zebra命令模式分析(二)[补]
查看>>
Windows操作系统---C Drive
查看>>
TDSS 0.0.2 测试版发布,分布式存储系统
查看>>
GNU Guile 2.0.9 发布,Scheme 实现
查看>>
矩形嵌套
查看>>
TPL中Task执行的内联性线程重入
查看>>
NS2中的随机数产生器(转)
查看>>
jQuery插件Asgrid添加表头排序的功能
查看>>
MySQL大量unauthenticated user
查看>>
systimestamp
查看>>
第九学 linux内核——内存寻址——分页机制(1)
查看>>
2013年5月13日星期一
查看>>
ssh之雇员管理系统(7)-spring可以启用注解的方式来配置属性+解决懒加载问题...
查看>>
nullnulldebian下给用户添加权限
查看>>
磨坊事件
查看>>
div 显示滚动条与div显示隐藏的CSS代码
查看>>