mysqlが正常に起動したかどうかを確認する方法(bat+bash)

2361 ワード

多くの友达はwindowsの下のコードを参考にすることができます
1つ目の方法:rsync、serv_を含む比較的一般的な方法uなどは、プロセス内のexeファイル、例えばmysqlがmysqldである.exe

@echo off 
for /f "usebackq" %%i in (`"tasklist|find /c "mysqld.exe""`) do ( 
set chkstat=%%i 
) 
if %chkstat% == 0 ( 
net start mysql
echo ================ >> %date:~0,10%.log 
echo %date% %time% check mysql service stop >> %date:~0,10%.log 
echo restart mysql service! >> %date:~0,10%.log 
echo ================ >> %date:~0,10%.log 
) 

2つ目の方法:

@echo off
for /f "skip=3 tokens=4" %%i in ('sc query mysql') do set "zt=%%i" &goto :next

:next
if /i "%zt%"=="RUNNING" (
echo           ,        
net stop mysql
) else (
echo            ,        
net start mysql
)
exit
pause

linuxシステムではshellコマンドで実現
MySQLがダウンしているかどうかを検出し、ダウンしている場合は起動します.
MySQLが頻繁にダウンタイムしている場合は、このスクリプトを使用してダウンタイム後に自動的に起動し、crontabに追加して実行すればいいです.詳しくはご覧くださいhttp://www.codeproject.com/Articles/988967/Mysql-Uptime-Check-Script

#!/bin/bash
 
result=`/usr/bin/mysqladmin ping`
expected='mysqld is alive'
 
if [[ "$result" != "$expected" ]]
then
echo "It's dead - restart mysql"
 
# email subject
SUBJECT="[MYSQL ERROR] - Attempting to restart service"
 
# Email To ?
EMAIL="[email protected]"
 
# Email text/message
EMAILMESSAGE="/tmp/emailmessage.txt"
echo "$result was received"> $EMAILMESSAGE
echo "when we were expected $expected" >>$EMAILMESSAGE
# send an email using /bin/mail
mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
 
sudo /etc/init.d/mysql restart
fi

方法二、

#!/bin/bash
#mysql check
PORT="0"
PORT=`netstat -lnt | grep 3306 | wc -l `
echo $PORT
if [ $PORT -eq 1 ]
 then
echo "mysql is running"
else
echo "mysql is not running"
echo "progrome reeady to start mysql "

sudo service mysql start
./check_mysql.sh
fi