mirror of
https://github.com/aljazceru/zabbix.git
synced 2025-12-17 13:24:25 +01:00
Create dependency
This commit is contained in:
69
Dependency/dependency
Normal file
69
Dependency/dependency
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
##################################################
|
||||||
|
# AUTHOR: Neo <netkiller@msn.com>
|
||||||
|
# WEBSITE: http://www.netkiller.cn
|
||||||
|
# Description: software dependency check
|
||||||
|
# Note:Zabbix 3.2
|
||||||
|
# DateTime: 2016-12-08
|
||||||
|
##################################################
|
||||||
|
TIMEOUT=10
|
||||||
|
CONFIG=/srv/zabbix/conf/dependency.conf
|
||||||
|
##################################################
|
||||||
|
|
||||||
|
function discovery(){
|
||||||
|
echo '{"data":['
|
||||||
|
tmp=""
|
||||||
|
while IFS=" " read -r name ipaddr port || [[ -n "$ipaddr" ]]; do
|
||||||
|
tmp="$tmp{\"{#NAME}\":\"${name}\",\"{#IP}\":\"${ipaddr}\",\"{#PORT}\":\"${port}\"},"
|
||||||
|
done < "$1"
|
||||||
|
echo $tmp | sed "s/,$//"
|
||||||
|
echo "]}"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
function icmp(){
|
||||||
|
ping -c 1 -n -w ${TIMEOUT} $1 | egrep -o "time=(.*)" | sed "s/time\=\(.*\) ms/\1/"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
function port(){
|
||||||
|
CONNECTED=$(echo -e "\r\n"|nc -v -w ${TIMEOUT} $1 $2 2>&1 | grep Connected)
|
||||||
|
if [ -z "${CONNECTED}" ]; then
|
||||||
|
echo 1
|
||||||
|
else
|
||||||
|
echo 0
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
function usage(){
|
||||||
|
echo "$0 - Software dependency check"
|
||||||
|
echo " author neo <netkiller@msn.com>"
|
||||||
|
echo " -d/--discovery "
|
||||||
|
echo " -p/--ping 192.168.0.1/www.netkiller.cn"
|
||||||
|
echo " -c/--check 192.186.0.1 80"
|
||||||
|
echo " -h/--help"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
TEMP=`getopt -o dp:c:h --long discovery,ping:,check:,help -n "$0" -- "$@"`
|
||||||
|
|
||||||
|
if [ $# == 0 ] ; then usage >&2 ; exit 1 ; fi
|
||||||
|
|
||||||
|
# Note the quotes around `$TEMP': they are essential!
|
||||||
|
eval set -- "$TEMP"
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
case "$1" in
|
||||||
|
-d|--discovery)
|
||||||
|
discovery ${CONFIG}
|
||||||
|
;;
|
||||||
|
-p|--ping)
|
||||||
|
icmp $2 ; shift 2 ;;
|
||||||
|
-c|--check)
|
||||||
|
port $2 $4 ;shift 4 ;;
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
--) shift ; break ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
#for arg do echo '--> '"\`$arg'" ; done
|
||||||
Reference in New Issue
Block a user