Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. #!/bin/sh
  2. #
  3. # File: check_mysql_slavestatus.sh
  4. # Release Version: 0.1.1
  5. # Created 2012/12/10
  6. # License: MIT
  7. # Author: Takayuki Saito <github:taka3110>
  8. # How to use: "chmod + x" and please add on plugins directory.
  9. #
  10. ########################
  11. ###### Base info
  12. ########################
  13. #####################################
  14. # Settings
  15. LPORT=3306
  16.  
  17. #####################################
  18. # Nagios return codes
  19. STATE_OK=0
  20. STATE_WARNING=1
  21. STATE_CRITICAL=2
  22. STATE_UNKNOWN=3
  23.  
  24. #####################################
  25. # Command check
  26.  
  27. while getopts H:u:p:L: OPT
  28. do
  29. case $OPT in
  30. "H" ) FLAGH="TRUE" ; HOST="$OPTARG" ;;
  31. "u" ) FLAGu="TRUE" ; USER="$OPTARG" ;;
  32. "p" ) FLAGp="TRUE" ; PASS="$OPTARG" ;;
  33. "L" ) FLAGL="TRUE" ; LIMIT="$OPTARG" ;;
  34. * ) echo "Usage: $CMDNAME [-H HOST] [-u MySQLUser] [-p MySQLPassword] [-L BehindMasterLimit(sec)]. Example: -H 127.0.0.1 -u root -p hogehoge -L 10" 1>&2
  35. exit $STATE_UNKNOWN ;;
  36. esac
  37. done
  38.  
  39. if [ "$FLAGH" != "TRUE" ]; then
  40. echo "Usage: $CMDNAME [-H HOST] [-u MySQLUser] [-p MySQLPassword] [-L BehindMasterLimit(sec)]. Example: -H 127.0.0.1 -u root -p hogehoge -L 10" 1>&2
  41. exit $STATE_UNKNOWN
  42. fi
  43.  
  44. if [ "$FLAGu" != "TRUE" ]; then
  45. echo "Usage: $CMDNAME [-H HOST] [-u MySQLUser] [-p MySQLPassword] [-L BehindMasterLimit(sec)]. Example: -H 127.0.0.1 -u root -p hogehoge -L 10" 1>&2
  46. exit $STATE_UNKNOWN
  47. fi
  48.  
  49. if [ "$FLAGp" != "TRUE" ]; then
  50. echo "Usage: $CMDNAME [-H HOST] [-u MySQLUser] [-p MySQLPassword] [-L BehindMasterLimit(sec)]. Example: -H 127.0.0.1 -u root -p hogehoge -L 10" 1>&2
  51. exit $STATE_UNKNOWN
  52. fi
  53.  
  54. if [ "$FLAGL" != "TRUE" ]; then
  55. echo "Usage: $CMDNAME [-H HOST] [-u MySQLUser] [-p MySQLPassword] [-L BehindMasterLimit(sec)]. Example: -H 127.0.0.1 -u root -p hogehoge -L 10" 1>&2
  56. exit $STATE_UNKNOWN
  57. fi
  58.  
  59. ########################
  60. ###### Error Check
  61. ########################
  62.  
  63. ### MySQL Up/Down Check for nrpe.
  64. ### We don't use on this version.
  65. #netstat -ln|grep LISTEN|grep $LPORT >/dev/null 2>&1
  66. #case "$?" in
  67. #"1" )
  68. #echo "Critical : MySQL is not running. port3306 is closing."
  69. #exit $STATE_CRITICAL;;
  70. #"0" ) ;;
  71. #esac
  72.  
  73. ## Login check
  74. mysql -h $HOST -u $USER -p"$PASS" -e "select 4 + 1;" >/dev/null 2>&1
  75. case "$?" in
  76. "1" )
  77. echo "Critical : Access denied."
  78. exit $STATE_CRITICAL;;
  79. "0" ) ;;
  80. esac
  81.  
  82. ########################
  83. ###### Get Rep Status
  84. ########################
  85. SIR=`mysql -h $HOST -u $USER -p"$PASS" -e "show slave status\G"|grep Slave_IO_Running|awk '{print $2}'`
  86. SSR=`mysql -h $HOST -u $USER -p"$PASS" -e "show slave status\G"|grep Slave_SQL_Running|awk '{print $2}'`
  87. SBM=`mysql -h $HOST -u $USER -p"$PASS" -e "show slave status\G"|grep Seconds_Behind_Master|awk '{print $2}'`
  88.  
  89. ## First
  90. if [ "$SBM" != "NULL" ]; then
  91.  
  92. if [ $SBM -ge $LIMIT ]; then
  93. echo "Critical : Slave_IO_Running $SIR / Slave_SQL_Running $SSR / Seconds_Behind_Master $SBM"
  94. exit $STATE_CRITICAL
  95. else
  96. sleep 1
  97. fi
  98. else
  99. echo "" >/dev/null 2>&1
  100. fi
  101.  
  102. case "$SIR" in
  103. "No" )
  104. echo "Critical : Slave_IO_Running $SIR / Slave_SQL_Running $SSR / Seconds_Behind_Master $SBM"
  105. exit $STATE_CRITICAL;;
  106. "Yes" ) ;;
  107. esac
  108.  
  109. case "$SSR" in
  110. "No" )
  111. echo "Critical : Slave_IO_Running $SIR / Slave_SQL_Running $SSR / Seconds_Behind_Master $SBM"
  112. exit $STATE_CRITICAL;;
  113. "Yes" )
  114. echo "OK : Slave_IO_Running $SIR / Slave_SQL_Running $SSR / Seconds_Behind_Master $SBM"
  115. exit $STATE_OK;;
  116. esac
  117.  
  118. exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement