加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

重新编辑启动脚本

发布时间:2022-03-08 12:33:54 所属栏目:编程 来源:互联网
导读:!/bin/bash user=root port=3306 CmdPath=/opt/mysql/bin password=xxxxxxxxxx base_dir=/opt/mysql inst_dir=/data/3306 alive=00 sMysqld=0 sMysqldSafe=0 fSock=0 fPID=0 check_alive() { echo running check_alive... if [ ps -ef | grep $port | grep -
    !/bin/bash
    user=root
    port=3306
    CmdPath=/opt/mysql/bin
    password=xxxxxxxxxx
 
base_dir=/opt/mysql
inst_dir=/data/3306
alive="00"
sMysqld=0
sMysqldSafe=0
fSock=0
fPID=0
 
check_alive()
{
echo "running check_alive..."
if [ ps -ef | grep $port | grep -v grep | grep 'mysqld ' |awk '{print $2}' ];then
echo "Process mysqld is running!"
sMysqld=1
else
echo "Process mysqld is not running!"
sMysqld=0
fi
 
     if [  `ps -ef | grep 3306 | grep -v grep | grep 'mysqld_safe' |awk '{print $2}'` ];then
        echo "Process mysqld_safe is running!"
        sMysqldSafe=1
 else
    echo "Process mysqld_safe is not running!"
    sMysqldSafe=0
     fi
 
     if [ -e  ${inst_dir}/mysql.sock ];then
        echo "socked file exists!"
        fSock=1
 else
    echo "socked file not exists!"
    fSock=0
     fi
 
     if [ -e  ${inst_dir}/mysql.pid ];then
        echo "pid file exists!"
        fPID=1
 else
    echo "pid file  not exists!"
    fPID=0
     fi
 
     if [ $sMysqld -eq 1 ];then
        if [ $fPID -eq 0 ];then
            echo "PID is missing, tring to recreate..."
            ps -ef | grep $port | grep -v grep | grep 'mysqld ' |awk '{print $2}' > ${inst_dir}/mysql.pid
            if [ -e ${inst_dir}/mysql.pid ]; then
                echo "pid file is created!"
            else
                echo "can not create PID file, please have a check!"
            fi
        fi
        if [ $sMysqldSafe -eq 0 ];then
            echo "Process mysqld_safe is missing, please have a check! May cause mysqld crash!"
        fi
        if [ $fSock -eq 1 ];then
            echo "MySQL running fine!!!"
            alive="11"
        else
            echo "socket file is missing, you may have to login without socket!"
            alive="10"          
        fi                          
     else
        echo "process mysqld is missing, mysql is stopped!"
        if [ $fSock -eq 1 ] | [ $fPID -eq 1 ];then
            echo "mysql was stopped abnormality!"
            echo "cleaning socket file and pid file"
            alive="01"
        else
            alive="00"
    fi
 
     fi
}
 
start_mysql()
{
check_alive
printf "MySQL is starting ... n"
if [ $alive == "00" ]; then
${CmdPath}/mysqld_safe --defaults-file=${inst_dir}/my.cnf --user=${user} 2>&1 >/dev/null &
else
if [ $alive == "11" ]; then
echo "MySQL is runnig!"
else
if [ $alive == "01" ]; then
echo "MySQL was stopped but pid or sock file still exits!"
echo "Cleanning pid or sock files!"
if [ $fSock -eq 1 ];then
rm -f ${inst_dir}/mysql.sock
fi
if [ $fPID -eq 1 ];then
rm -f ${inst_dir}/mysql.pid
fi
echo "Tring to start MySQL again!!!"
${CmdPath}/mysqld_safe --defaults-file=${inst_dir}/my.cnf --user=${user} 2>&1 >/dev/null &
fi
fi
fi
}
 
stop_mysql()
{
check_alive
printf "MySQL is Stopping...n"
if [ $alive == "11" ]; then
${CmdPath}/mysqladmin -u root -p${password} -S ${inst_dir}/mysql.sock shutdown 2>&1 >/dev/null &
else
if [ $alive == "10" ]; then
${CmdPath}/mysqladmin -u root -p${password} -h $HOSTNAME -P $port --protocol tcp shutdown 2>&1 >/dev/null &
else
echo "MySQL is not running, no need stop!"
fi
fi
}
 
restart_mysql()
{
stop_mysql
sleep 5
if [ $? == 0 ];then
start_mysql
else
echo "stop mysql failed!"
fi
}
 
case $1 in
 
start)
start_mysql
;;
stop)
stop_mysql
;;
restart)
restart_mysql
;;
status)
status_mysql
;;
alive)
check_alive
;;
*)
printf "Please in put start|stop|restart|status as input"
;;
esac

(编辑:核心网)

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

    热点阅读