这是一个shell脚本返回2个值,一个用于丢包率,另一个用于True或False:
SERVER_IP=$1
checkip=`ping -c 2 -W 2 $SERVER_IP | grep "packet loss" | cut -d " " -f 6 | cut -d "%" -f1`
test1=$?
echo $checkip
if [ $test1 -eq 0 ]; then
echo "1"
else
echo "0"
fi
在zabbix中创建项目时,只输入一个带有值的参数,但我有2个值,一个数据包丢失,第二个用于ping结果(0和1)
如何为数据包丢失百分比创建两个项目1,如果仅使用此脚本创建ping健康检查,则第二个项目?我不想创建另一个
答案 0 :(得分:0)
UserParameter = key [*],/ path_of_script.sh $ 1
在GUI: 密钥:密钥[Server_IP]
另一个例子: UserParameter = general [*],/ usr / local / etc / scripts / general.sh $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9
$ cat general.sh
#!/bin/bash
case $1 in
ddate) ddate;;
minute) echo "`date +%M`%2" | bc;;
files) ls -l $2 | grep ^- | wc -l;;
size.dir) du -s $2 | cut -f1;;
script) /bin/bash /usr/local/etc/scripts/script.sh;;
*) echo "Use: ddate, minute, files <parameters>, size.dir <parameters> or script";;
esac
$ zabbix_get -s Server_IP -k general [分钟]
答案 1 :(得分:0)
感谢Andre
尝试此脚本,这将指导您到底想要什么:
#!/bin/bash
case $1 in
packetloss) ping -c2 -W1 -q 8.8.8.8 | grep -oP '\d+(?=% packet loss)' ;;
timeout) ping -c2 -q 8.8.8.8 | grep 'time' | awk -F',' '{ print$4}' | awk '{print $2}' | cut -c 1-4 ;;
*) echo "Use: packetloss , timeout";;
esac
尝试(im in zsh):
zabbix_agentd -t ping.loss\[timeout\]
ping.loss[timeout] [t|1000]
或在zabbix服务器中使用get(我也在zsh中也是这样):
zabbix_get -s 172.20.4.49 -k ping.loss\[timeout\]
1001
现在使用这些键创建项目。