#!/bin/bash
#a nagios plugin for  check moosefs healthy
#write 20120821
CHECK_OK=0
CHECK_WARNING=1
CHECK_CRITICAL=2
CHECK_UNKNOWN=3

CHECK_MASTER () {
        check_process=`ps aux|grep '/usr/local/mfs/sbin/mfsmaster'|grep -v grep`
        check_port=`netstat -lunpt|grep ':9419'`
        if [ -n "$check_process" -a -n "$check_port" ]
        then
        echo "mfsmaster is OK"
        exit 0
        else
        echo "mfsmaster is not running"
        exit 2
        fi
}

CHECK_CHUNK () {
        check_process=`ps aux|grep '/usr/local/mfs/sbin/mfschunkserver'|grep -v grep`
        check_port=`netstat -lunpt|grep ':9422'`
        if [ -n "$check_process" -a -n "$check_port" ]
        then
        echo "mfschunkserver is OK"
        exit 0
        else
        echo "mfschunkserver is not running"
        exit 2
        fi
}
CHECK_CLIENT () {
        check_process=`ps aux|grep '/usr/local/mfs/bin/mfsmount'|grep -v grep`
        if [ -n "$check_process" ]
        then
        echo "mfsclient is OK"
        exit 0
        else
        echo "mfsclient is not running"
        exit 2
        fi
}
CHECK_METALOGGER () {
        check_process=`ps aux|grep '/usr/local/mfs/sbin/mfsmetalogger'|grep -v grep`
        if [ -n "$check_process" ]
        then
        echo "mfschunkserver is OK"
        exit 0
        else
        echo "mfschunkserver is not running"
        exit 2
        fi
}
case "$1" in
        -M)
        CHECK_MASTER
        ;;
        -c)
        CHECK_CLIENT
        ;;
        -C)
        CHECK_CHUNK
        ;;
        -L)
        CHECK_METALOGGER
        ;;
        *)
        echo "Unknown argement: $1"
        ;;
esac