slavedm.sh源码:

  1. #!/bin/sh  
  2. #  
  3. # Slave Daemon  
  4. # @version 1.0  
  5. # @author Hellex <[email]Hellex@live.com[/email]>  
  6. #  
  7.  
  8. #从库服务器配置,分别是主机名,端口,用户名,密码,请一一对应  
  9. mysql_host=("db2" "db3" "db4" "db5" "db6" "db7" "db8" "db9" "db10" "db11" "db12" "db13")  
  10. mysql_port=(3306 3306 3306 3306 3306 3306 3406 3306 3307 3406 3309 3310)  
  11. mysql_user=("dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser" "dmuser")  
  12. mysql_password=("dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword" "dmpassword")  
  13.  
  14. #loop for checking  
  15. len=${#mysql_host[*]}  
  16. i=0  
  17. while  [ $i -lt $len ]  
  18. do  
  19.     #get slave status  
  20.     status=`/usr/local/webserver/mysql/bin/mysql  -h${mysql_host[$i]} -u${mysql_user[$i]} -p${mysql_password[$i]} -P${mysql_port[$i]} -e"SHOW SLAVE STATUS\G"`  
  21.  
  22.     #check SQL Thread  
  23.     if (echo "$status"|egrep "Slave_IO_Running: *Yes" 2>&1 > /dev/null) && (echo "$status"|egrep "Slave_SQL_Running: *No" 2>&1 > /dev/null)  
  24.     then  
  25.  
  26.        #log error  
  27.        sql_error=`echo "$status"|egrep "Last_SQL_Error:" | awk -F 'Last_SQL_Error:' '{printf $2}'`  
  28.        sql_erroro=`echo "$status"|egrep "Last_SQL_Errno:" | awk -F 'Last_SQL_Errno:' '{printf $2}'`  
  29.        echo `date +%y%m%d%H%M%S`"    "${mysql_host[$i]}:${mysql_port[$i]}"    "${sql_erroro}"    "${sql_error} >> /server/daemon/slavedm.log  
  30.  
  31.        #stop slave  
  32.        /usr/local/webserver/mysql/bin/mysql  -h${mysql_host[$i]} -u${mysql_user[$i]} -p${mysql_password[$i]} -P${mysql_port[$i]} -e"STOP SLAVE" 2>&1 > /dev/null  
  33.  
  34.        #skip error  
  35.        /usr/local/webserver/mysql/bin/mysql  -h${mysql_host[$i]} -u${mysql_user[$i]} -p${mysql_password[$i]} -P${mysql_port[$i]} -e"SET GLOBAL