12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/bin/sh
- ZBX_SERVER_ADDR="127.0.0.1"
- ZBX_SERVER_PORT="10051"
- HOST_IP="${1}"
- HOST_NAME="${2}"
- PING_COUNT="${3}"
- PING_INTERVAL="${4}"
- NOFORK="${5}"
- if [ $# -lt 4 ]; then
- printf "Wrong parameter count\n" >&2
- printf "Usage: $(basename "${0}") <HOST_IP> <ZABBIX_HOST_NAME> <NUMBERS_OF_PING_REQUESTS> <INTERVAL> [<NOFORK>]\n" >&2
- exit 2
- fi
- if [ "${NOFORK}" != 1 ]; then
- start-stop-daemon --background --start --exec $(readlink -f "${0}") -- "${HOST_IP}" "${HOST_NAME}" "${PING_COUNT}" "${PING_INTERVAL}" 1
- else
- read ping_loss ping_min ping_max ping_avg <<EOC
- $(fping -c "${PING_COUNT}" -q -p "${PING_INTERVAL}" "${HOST_IP}" 2>&1 | sed -r 's#.*([0-9\.])%, min/avg/max = ([0-9\.]+)/([0-9\.]+)/([0-9\.]+)$#\1 \2 \3 \4#')
- EOC
- if zabbix_sender -z "${ZBX_SERVER_ADDR}" -p "${ZBX_SERVER_PORT}" -s "${HOST_NAME}" -k PingLoss -o "${ping_loss}" | grep -v 'sent:' | grep -q -v 'failed: 0'; then
- echo 0
- exit 1
- fi
- if zabbix_sender -z "${ZBX_SERVER_ADDR}" -p "${ZBX_SERVER_PORT}" -s "${HOST_NAME}" -k PingLatencyMin -o "${ping_min}" | grep -v 'sent:' | grep -q -v 'failed: 0'; then
- echo 0
- exit 1
- fi
- if zabbix_sender -z "${ZBX_SERVER_ADDR}" -p "${ZBX_SERVER_PORT}" -s "${HOST_NAME}" -k PingLatencyMax -o "${ping_max}" | grep -v 'sent:' | grep -q -v 'failed: 0'; then
- echo 0
- exit 1
- fi
- if zabbix_sender -z "${ZBX_SERVER_ADDR}" -p "${ZBX_SERVER_PORT}" -s "${HOST_NAME}" -k PingLatencyAvg -o "${ping_avg}" | grep -v 'sent:' | grep -q -v 'failed: 0'; then
- echo 0
- exit 1
- fi
- fi
- echo 1
- exit 0
|