linux中利用shell 脚本case来启动mysql脚本

这个博客介绍了如何在Linux环境中通过shell脚本来创建一个包含case语句的脚本,用于启动和停止MySQL服务。脚本首先引入了系统库函数,定义了基本路径,然后定义了成功和失败的提示函数。主要功能包括启动和停止MySQL的函数,其中启动函数检查mysqld_safe的可执行性,并在后台启动MySQL,同时处理锁文件。最后,脚本根据接收到的参数调用相应的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入库函数

#!/bin/bash
#引入系统库函数

. /ect/init.d/functions

基本路径定义

#基础路径定义
basedir=’/application/mysql’
bandir=’/application/mysql/bin’
lockdir=’/var/locksubsys’
lock_file_path=‘lockdir/mysql′mysqldpidfilepath=′lockdir/mysql' mysqld_pid_file_path='lockdir/mysqlmysqldpidfilepath=basedir/data/uname -d.pid’

提示函数

#成功提示函数
log_success_msg(){
#action为特殊的提示函数, @为所有参数action"SUCCESS!@为所有参数 action "SUCCESS!@action"SUCCESS!@" /bin/true

}

#失败提示函数
log_failure_msg(){
#action为特殊的提示函数, @为所有参数action"FALSE!@为所有参数 action "FALSE!@action"FALSE!@" /bin/false

}

启动脚本

#mysql启动函数
start(){
echo $“Starting MySql”
#测试mysqld_safe是否可执行
if test -x $bindir/mysqld_safe
then
#后台执行启动mysql命令
KaTeX parse error: Expected 'EOF', got '&' at position 20: …ir/mysqld_safe &̲>/dev/null & …?
#善类是否为0
if [ retval−eq0]thenlogsuccessmsg"mysqlStartup"iftest−w"retval -eq 0 ] then log_success_msg "mysql Startup" if test -w "retvaleq0]thenlogsuccessmsg"mysqlStartup"iftestw"lockdir" #判断目录是否可写
then
touch “$lock_file_path” #创建锁文件
fi
return $retval
else
log_failure_msg “MySql Startuo”
return retvalfielselogfailuremsg"Couldn′tfindMySqlserver(retval fi else log_failure_msg "Couldn't find MySql server(retvalfielselogfailuremsg"CouldntfindMySqlserver(basedir/mysqld_safe)"

fi

}

停止脚本

#mysql停止函数

stop(){

#判断mysql pid file大小是否为0
if test -s "$mysqld_pid_file_path"
then
	#读取pidfile
	mysql_pid=`cat $mysqld_pid_file_path`
	#判断mysql 皮带对应的进程是否存在
	if (kill -0 $mysql_pid 2>/dev/null)
	then
		echo $"Shutting down MySql"
		kill $mysql_pid   #停止命令
		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 mysql_pid is not running!"
		rm "$mysqld_pid_file_path"       #删除锁文件
	fi
else
	log_failure_msg "MySql server PID file is null or not exit!"
	
fi

}

主函数

#接收传参判断并执行相应函数

case "1"instart)startretval=1" in start) start retval=1"instart)startretval=?

‘’

stop)
	stop 
	retval=$?
	..
	''
restart)
	stop
	sleep 5  #中间等待后台停止任务结束
	start
	retval=$?
	..
	''
*)
	start 
	retval=$?
	echo $"Usage $0 {start|stop|restart}"
	exit 2

esac
exit $retval #执行脚本返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值