我正在编写 Nagios 插件,运行它时出现“命令未找到”错误。出了什么问题?为什么 127.0.0.1(或 localhost)无法识别?当我仅运行 snmp 请求时 - 我有一个简单的数字作为输出 - 所以一切都运行正常。
这是脚本
#!/bin/bash
answer=snmpget 127.0.0.1 -v 2c -c public .1.3.6.1.4.1.2021.11.9.0 | grep -Eo
'[0-9]+$'
case $answer in
[1-2]*)
echo "OK"
exit 0
;;
[3-50]*)
echo "WARNING"
exit 1
;;
[51-100]*)
echo "CRITICAL"
exit 2
;;
*)
echo "UNKNOWN"
exit 3
;;
esac
答案1
您的变量分配不正确。您正在寻找命令替换:
answer=$(snmpget 127.0.0.1 -v 2c -c public .1.3.6.1.4.1.2021.11.9.0 | grep -Eo '[0-9]+$')
正如您所编写的,您正在将其设置answer=snmpget
为命令的环境变量:127.0.0.1
带有选项:-v 2c -c public .1.3.6.1.4.1.2021.11.9.0
另请注意[3-50]
,[51-100]
几乎肯定不会执行您想要的操作。看:我可以使用比较运算符吗?