老鸟带你开发专业规范的MySQL启动脚本
每一个合格的Linux运维人员都应该做到熟练或精通Shell脚本编程,因为Shell脚本语言差不多是所有编程语言里最简单的语言,如果Shell脚本不行,意味着运维之路可能还没开始就将要终结。——老男孩老师
#!/bin/bash #chkconfig:23456436#配置系统自启动 #description:AveryfastandreliableSQLdatabaseengine. ############################################################## #FileName:mysqld #Version:V1.0 #Author:oldboy #Organization:www.oldboyedu.com #CreatedTime:2018-06-0508: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$"StartingMySQL" #测试mysqld_safe是否可执行 iftest-x$bindir/mysqld_safe then #后台执行启动mysql命令 $bindir/mysqld_safe&>/dev/null& #获取返回值 retval=$? #判断返回值是否为0 if[$retval-eq0] then #调用成功提示函数。 log_success_msg"mysqlStartup" iftest-w"$lockdir"#判断锁目录是否可写。 then touch"$lock_file_path"#创建锁文件。 fi return$retval#给返回值是专业的表现。 else log_failure_msg"MySQLStartup"#调用失败函数提示。 return$retval fi else log_failure_msg"Couldn'tfindMySQLserver($bindir/mysqld_safe)" fi } #停止MySQL函数。 stop(){ #判断mysqlpidfile大小是否为0。 iftest-s"$mysqld_pid_file_path" then #读取pidfile mysqld_pid=`cat"$mysqld_pid_file_path"` #判断mysqlpid对应的进程是否存在。 if(kill-0$mysqld_pid2>/dev/null) then echo$"ShuttingdownMySQL" kill$mysqld_pid#停止MySQL命令。 retval=$? if[$retval-eq0] then log_success_msg"MySQLStop"#调用停止成功函数。 iftest-f"$lock_file_path" then rm-f"$lock_file_path"#删除锁文件。 fi return$retval else log_failure_msg"MySQLStop." return$retval fi else log_failure_msg"MySQLserverprocessmysqld_pidisnotrunning!" rm"$mysqld_pid_file_path" fi else log_failure_msg"MySQLserverPIDfileisnullornotexist!" fi } #接收传参判断并执行相应函数。 case"$1"in start) start retval=$? ;; stop) stop retval=$? ;; restart) stop sleep2#这里很重要,要休息一下。 start retval=$? ;; *) echo$"Usage:$0{start|stop|restart}" exit2 esac exit$retval#执行脚本后,有返回值才更专业。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。