加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

企业级通过shell脚本开发MySQL启动脚本 案例

发布时间:2020-12-15 16:45:17 所属栏目:安全 来源:网络整理
导读:企业Shell面试题10:开发MySQL启动脚本 说明 MySQL启动命令为: /bin/shmysqld_safe--pid-file=$mysqld_pid_file_path21/dev/null 停止命令为: mysqld_pid=`cat"$mysqld_pid_file_path"` if(kill-0$mysqld_pid2/dev/null) then kill$mysqld_pid sleep2 fi

企业Shell面试题10:开发MySQL启动脚本
说明
MySQL启动命令为:
/bin/shmysqld_safe--pid-file=$mysqld_pid_file_path2>&1>/dev/null&
停止命令为:
mysqld_pid=`cat"$mysqld_pid_file_path"`
if(kill-0$mysqld_pid2>/dev/null)
then
kill$mysqld_pid
sleep2
fi
请完成MySQL启动脚本的编写
要求:用函数,case语句、if语句等实现。
解答:



[root@db02scripts]#cat/etc/init.d/oldgirl
#!/bin/bash
#chkconfig:23456436
#description:MySQLstartup
#Author:oldboy
#Blog:

spacer.gif

http://oldboy.blog.51cto.com
#Time:2017-07-0709:24:34
#Name:

spacer.gif

mysqld.sh
#Version:V1.0
#Description:Thisisatestscript.
[-f/etc/init.d/functions]&&source/etc/init.d/functions
Port=3306
User="root"
Bindir="/application/mysql/bin"
Datadir="/application/mysql/data"
mysqld_pid_file_path="/application/mysql/`hostname`.pid"
PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"
exportPATH
return_value=0


#Lockdirectory.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"

log_success_msg(){
echo"SUCCESS!$@"
}
log_failure_msg(){
echo"ERROR!$@"
}



case"$1"in
start)
#Startdaemon
echo"StartingMySQL"
iftest-x$Bindir/mysqld_safe
then
$Bindir/mysqld_safe--datadir="$Datadir"--pid-file="$mysqld_pid_file_path">/dev/null&
return_value=$?
sleep2

#MakelockforCentOS
iftest-w"$lockdir"
then
touch"$lock_file_path"
fi
exit$return_value
else
log_failure_msg"Couldn'tfindMySQLserver($bindir/mysqld_safe)"
fi
;;
stop)
iftest-s"$mysqld_pid_file_path"
then
mysqld_pid=`cat"$mysqld_pid_file_path"`

if(kill-0$mysqld_pid2>/dev/null)
then
echo"ShuttingdownMySQL"
kill$mysqld_pid
return_value=$?
sleep2
else
log_failure_msg"MySQLserverprocess#$mysqld_pidisnotrunning!"
rm-f"$mysqld_pid_file_path"
fi
#DeletelockforCentOS
iftest-f"$lock_file_path"
then
rm-f"$lock_file_path"
fi
exit$return_value
else
log_failure_msg"MySQLserverPIDfilecouldnotbefound!"
fi
;;
restart)
if$0stop;then
$0start
else
log_failure_msg"Failedtostoprunningserver,sorefusingtotrytostart."
exit1
fi
;;

*)
echo"Usage:$0{start|stop|restart}"
exit1
;;
esac
exit$return_value














函数版:

#!/bin/bash
#chkconfig:23456436
#description:MySQLstartup
#Author:oldboy
#Blog:

spacer.gif

http://oldboy.blog.51cto.com
#Time:2017-07-0709:24:34
#Name:

spacer.gif

mysqld.sh#Version:V1.0#Description:Thisisatestscript.[-f/etc/init.d/functions]&&source/etc/init.d/functionsport=3306user="root"bindir="/application/mysql/bin"datadir="/application/mysql/data"mysqld_pid_file_path="/application/mysql/`hostname`.pid"PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"exportPATHreturn_value=0#Lockdirectory.lockdir='/var/lock/subsys'lock_file_path="$lockdir/mysql"log_success_msg(){echo"SUCCESS!$@"}log_failure_msg(){echo"ERROR!$@"}start(){#Startdaemonecho"StartingMySQL"iftest-x$bindir/mysqld_safethen$bindir/mysqld_safe--datadir="$datadir"--pid-file="$mysqld_pid_file_path">/dev/null&return_value=$?sleep2#MakelockforCentOSiftest-w"$lockdir"thentouch"$lock_file_path"fiexit$return_valueelselog_failure_msg"Couldn'tfindMySQLserver($bindir/mysqld_safe)"fi}stop(){iftest-s"$mysqld_pid_file_path"thenmysqld_pid=`cat"$mysqld_pid_file_path"`if(kill-0$mysqld_pid2>/dev/null)thenecho"ShuttingdownMySQL"kill$mysqld_pidreturn_value=$?sleep2elselog_failure_msg"MySQLserverprocess#$mysqld_pidisnotrunning!"rm-f"$mysqld_pid_file_path"fi#DeletelockforCentOSiftest-f"$lock_file_path"thenrm-f"$lock_file_path"fiexit$return_valueelselog_failure_msg"MySQLserverPIDfilecouldnotbefound!"fi}case"$1"instart)start;;stop)stop;;restart)if$0stop;then$0startelselog_failure_msg"Failedtostoprunningserver,sorefusingtotrytostart."exit1fi;;*)echo"Usage:$0{start|stop|restart}"exit1;;esacexit$return_value

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读