mysqlが正常に起動したかどうかを確認する方法(bat+bash)
2361 ワード
多くの友达はwindowsの下のコードを参考にすることができます
1つ目の方法:rsync、serv_を含む比較的一般的な方法uなどは、プロセス内のexeファイル、例えばmysqlがmysqldである.exe
2つ目の方法:
linuxシステムではshellコマンドで実現
MySQLがダウンしているかどうかを検出し、ダウンしている場合は起動します.
MySQLが頻繁にダウンタイムしている場合は、このスクリプトを使用してダウンタイム後に自動的に起動し、crontabに追加して実行すればいいです.詳しくはご覧くださいhttp://www.codeproject.com/Articles/988967/Mysql-Uptime-Check-Script
方法二、
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