Created
May 4, 2012 05:22
-
-
Save raphink/2592223 to your computer and use it in GitHub Desktop.
Healthcheck script for mcollective
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
NODESDIR="${1:-${HOME}/puppetmaster/manifests/nodes}" | |
ret=0 | |
mcofqdn=$(mco facts fqdn | sed -n 's@found@ found@p') # circumvent bug in mco | |
morethanonce=$(grep ' [0-9]*[^1] times' <<<"$mcofqdn") | |
[[ -n $morethanonce ]] \ | |
&& echo "Found more than once in mco" \ | |
&& echo "$morethanonce" \ | |
&& echo \ | |
&& ret=1 | |
tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/mco-check.XXXXXX") | |
trap 'rm -rf $tmpdir ; exit 1' 1 2 3 7 13 15 | |
trap 'rm -rf $tmpdir' 0 | |
sed -n "s@.*node[ \t]\+[\"']\([^\"']\+\)[\"'].*@\1@p" $NODESDIR/* | \ | |
sort -u > $tmpdir/nodesfqdn | |
awk '{print $1}' <<<"$mcofqdn" | \ | |
sort -u > $tmpdir/mcofqdn | |
onlymco=$(join -v 1 $tmpdir/{mco,nodes}fqdn) | |
[[ -n $onlymco ]] \ | |
&& echo "Found in mco but not in nodes" \ | |
&& awk '{print " "$1}'<<<"$onlymco" \ | |
&& echo \ | |
&& ret=1 | |
onlynodes=$(join -v 2 $tmpdir/{mco,nodes}fqdn) | |
onlynodesalive=$(tr '\n' ' ' <<<"$onlynodes" \ | |
| xargs -n 20 fping -aq 2>/dev/null) | |
[[ -n $onlynodesalive ]] \ | |
&& echo "Found in nodes but not in mco (and alive)" \ | |
&& awk '{print " "$1}'<<<"$onlynodesalive" \ | |
&& echo \ | |
&& ret=1 | |
exit $ret |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment