我遇到了一个很奇怪的问题,我在多个服务器上运行脚本(Bash),并且它停止在其中一台服务器上工作(在所有其他服务器上都可以正常工作)。
这是脚本的问题部分:(我自己没有写过,所有功劳都归功于“ Rich”)(http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- and-nrpe /)
if [ "$result" -lt "$warn_level" ]; then #Line 56
echo "Memory OK. $result% used."
exit 0;
elif [ "$result" -ge "$warn_level" ] && [ "$result" -le "$critical_level" ]; then #Line 59
echo "Memory WARNING. $result% used."
exit 1;
elif [ "$result" -gt "$critical_level" ]; then #Line 62
echo "Memory CRITICAL. $result% used."
exit 2;
fi
完整的错误消息:
./check_memory.sh: Line 56: [: 7.: integer expression expected
./check_memory.sh: Line 59: [: 7.: integer expression expected
./check_memory.sh: Line 62: [: 7.: integer expression expected
如果您需要更多信息,请告诉我,我将尝试尽快提供。
感谢所有输入:)
${result%%.*}是删除此处小数点的正确扩展。但是请注意,这cut -c -2还会导致数量大于或等于100的问题,因此将其完全丢弃会更安全。