检查mysql是否成功启动的方法(bat+bash)
很多朋友更喜欢windows下面的可以参考下面的代码
第一种方法:也比较普遍的方法,包括rsync、serv_u等都可以,通过查找进程中的exe文件,例如mysql就是mysqld.exe
@echooff for/f"usebackq"%%iin(`"tasklist|find/c"mysqld.exe""`)do( setchkstat=%%i ) if%chkstat%==0( netstartmysql echo================>>%date:~0,10%.log echo%date%%time%checkmysqlservicestop>>%date:~0,10%.log echorestartmysqlservice!>>%date:~0,10%.log echo================>>%date:~0,10%.log )
第二种方法:
@echooff for/f"skip=3tokens=4"%%iin('scquerymysql')doset"zt=%%i"&goto:next :next if/i"%zt%"=="RUNNING"( echo已经发现该服务在运行,正在已经关闭服务 netstopmysql )else( echo该服务现在处理停止状态,正在现在开启服务 netstartmysql ) exit pause
linux系统中通过shell命令实现
检测MySQL是否宕掉,如果宕掉则启动
如果你的MySQL经常宕机,可以用这个脚本来实现宕机后自动启动,把它加到crontab里执行即可。
详细介绍请看http://www.codeproject.com/Articles/988967/Mysql-Uptime-Check-Script
#!/bin/bash result=`/usr/bin/mysqladminping` expected='mysqldisalive' if[["$result"!="$expected"]] then echo"It'sdead-restartmysql" #emailsubject SUBJECT="[MYSQLERROR]-Attemptingtorestartservice" #EmailTo? EMAIL="info@endyourif.com" #Emailtext/message EMAILMESSAGE="/tmp/emailmessage.txt" echo"$resultwasreceived">$EMAILMESSAGE echo"whenwewereexpected$expected">>$EMAILMESSAGE #sendanemailusing/bin/mail mail-s"$SUBJECT""$EMAIL"<$EMAILMESSAGE sudo/etc/init.d/mysqlrestart fi
方法二、
#!/bin/bash #mysqlcheck PORT="0" PORT=`netstat-lnt|grep3306|wc-l` echo$PORT if[$PORT-eq1] then echo"mysqlisrunning" else echo"mysqlisnotrunning" echo"progromereeadytostartmysql" sudoservicemysqlstart ./check_mysql.sh fi