]>
Commit | Line | Data |
---|---|---|
64e40e56 ER |
1 | #!/bin/sh |
2 | # License: GPL v2 | |
3 | # Author: Elan Ruusamäe <glen@delfi.ee> | |
4 | # | |
5 | # Usage: check_mysql-heartbeat | |
6 | # | |
7 | ||
8 | PROGRAM=${0##*/} | |
9 | REVISION=$(echo '$Revision$' | sed -e 's/[^0-9.]//g') | |
10 | PROGPATH=${0%/*} | |
11 | . $PROGPATH/utils.sh | |
12 | ||
13 | heartbeat=mk-heartbeat | |
14 | hostname= | |
15 | port= | |
16 | username= | |
17 | password= | |
18 | database= | |
19 | ||
20 | die() { | |
21 | eval local rc=\$STATE_$1 | |
22 | [ "$rc" ] || rc=$STATE_UNKNOWN | |
23 | echo "$2" | |
24 | exit $rc | |
25 | } | |
26 | ||
27 | usage() { | |
28 | cat >&2 <<EOF | |
29 | Usage: check_mysql-heartbeat | |
30 | ||
31 | --mk | --maatkit | |
32 | Uses maatkit: mk-heartbeat | |
33 | --pt | --percona-toolkit | |
34 | Uses percona-toolkit: pt-hearbeat | |
35 | EOF | |
36 | } | |
37 | ||
38 | ## Start of main program ## | |
39 | while [ $# -gt 0 ]; do | |
40 | case "$1" in | |
41 | -h|--help) | |
42 | usage | |
43 | exit 0 | |
44 | ;; | |
45 | -V|--version) | |
46 | echo $PROGRAM $REVISION | |
47 | exit 0 | |
48 | ;; | |
49 | --mk|--maatkit) | |
50 | heartbeat=mk-heartbeat | |
51 | ;; | |
52 | --pt|--percona-toolkit) | |
53 | heartbeat=mk-heartbeat | |
54 | ;; | |
55 | -H|--host) | |
56 | shift | |
57 | hostname=$1 | |
58 | ;; | |
59 | -P|--port) | |
60 | shift | |
61 | port=$1 | |
62 | ;; | |
63 | -u|--username) | |
64 | shift | |
65 | username=$1 | |
66 | ;; | |
67 | -p|--password) | |
68 | shift | |
69 | password=$1 | |
70 | ;; | |
71 | -D|--database) | |
72 | shift | |
73 | database=$1 | |
74 | ;; | |
75 | esac | |
76 | shift | |
77 | done | |
78 | ||
79 | if [ -z "$hostname" ]; then | |
80 | die UNKNOWN "No hostname given" | |
81 | fi | |
82 | ||
83 | out=$($heartbeat ${database:+-D $database} --check -h $hostname ${username:+-u $username} ${password:+-p $password} 2>&1) | |
84 | rc=$? | |
85 | if [ "$rc" != 0 ]; then | |
86 | die UNKNOWN "$out" | |
87 | fi | |
88 | die OK "OK $heartbeat on $hostname @$out" |