diff --git a/runtrap b/runtrap index 2995d2a..ac26a84 100755 --- a/runtrap +++ b/runtrap @@ -1,25 +1,29 @@ #!/bin/bash -lockfile="/tmp/zabbix.trap.lock" -tempfile=$(mktemp /tmp/zabbix.trap.tmp.XXXXXXXXXX) -trapdir="$(dirname $(readlink -f $0))/trap.d" +state=${1:-live} +lockfile="/tmp/zabbix.trap.${state}.lock" +tempfile=$(mktemp /tmp/zabbix.trap.${state}.tmp.XXXXXXXXXX) +trapdir="$(dirname $(readlink -f $0))/trap.d/${state}" errors=0 +if [[ ! -d "$trapdir" ]]; then + echo "ERROR: Trap directory doesn't exist: $trapdir " + exit 5 +fi + if [[ -r "${lockfile}" ]]; then if [[ $(pgrep -f $(readlink -f $0) | wc -l) -gt 0 ]]; then runs=$(head -n1 ${lockfile}) if [[ $runs -ge 3 ]]; then - echo "need to kill prior poll" - for s in ${trapdir}/* + for s in ${trapdir}/${state}/* do echo "Kill: $s " pkill -9 -f $s done - rm -f /tmp/zabbix.trap.lock - rm -f /tmp/zabbix.trap.tmp.* + rm -f /tmp/zabbix.trap.${state}.lock + rm -f /tmp/zabbix.trap.${state}.tmp.* pkill -9 -f $(readlink -f $0) else - #let "runs++" echo "$[ ++runs ]" > ${lockfile} exit 0 fi @@ -27,7 +31,7 @@ if [[ -r "${lockfile}" ]]; then fi echo 1 > ${lockfile} -for s in ${trapdir}/* +for s in ${trapdir}/${state}/* do $s > ${tempfile} 2> /dev/null if [ $? -ne 0 ]; then @@ -35,18 +39,23 @@ do fi done -cat ${tempfile} -rm -f ${tempfile} -echo -echo "Errors: $errors" -exit 0 +#cat ${tempfile} +#rm -f ${tempfile} +#echo +#echo "Errors: $errors" +#exit 0 zsend=$(zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -i ${tempfile}) if [ $? -ne 0 ]; then - echo "2" + echo "ERROR" else - echo "${errors}" + if [[ $errors -gt 0 ]]; then + echo "WARN" + else + echo "OK" + fi fi rm -f ${tempfile} +rm -f /tmp/zabbix.trap.${state}.lock diff --git a/scripts/trap.d/daily/.do-not-delete b/scripts/trap.d/daily/.do-not-delete new file mode 100644 index 0000000..e69de29 diff --git a/scripts/trap.d/live/.do-not-delete b/scripts/trap.d/live/.do-not-delete new file mode 100644 index 0000000..e69de29