#!/bin/sh # {{{ Variables 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}" # }}} # {{{ main() if [ $# -lt 4 ]; then printf "Wrong parameter count\n" >&2 printf "Usage: $(basename "${0}") []\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 <&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 # }}} # vim: foldmethod=marker foldlevel=0 foldenable