博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
老鸟带你开发专业规范的MySQL启动脚本
阅读量:6469 次
发布时间: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://yadko.baihongyu.com/

你可能感兴趣的文章
vue的另一个内置组件keep-alive
查看>>
【本人秃顶程序员】在Java中使用函数范式提高代码质量
查看>>
如何在ReactJS中使用FastReport Core Web Report
查看>>
项目重构之缓存篇
查看>>
教你程序员的年终报告怎么写
查看>>
这就是我的研究生生活
查看>>
Meteor 项目完整 Demo ,涉及到大部分知识。 一款 Meteor 的 入门 Web App ,GitHub 开源。...
查看>>
反爬虫系列-JS参数篇
查看>>
我的友情链接
查看>>
sed & awk
查看>>
数据库集群技术
查看>>
阿里云ECS 镜像ubuntu16.04配置apache+mysql+php
查看>>
mysql5.7 innodb数据库备份工具Xtrabackup的安装
查看>>
nginx证书的设置
查看>>
spreadjs~~一个Excel在线编辑的工具
查看>>
实战讲解.htaccess文件rewrite规则
查看>>
我的友情链接
查看>>
2003年4月全国计算机等级考试二级C语言笔试试题及答案
查看>>
python2 to python3
查看>>
我的友情链接
查看>>