老鸟带你开发专业规范的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#执行脚本后,有返回值才更专业。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。