私はかなり奇妙な問題を抱えています。複数のサーバーでスクリプト(Bash)を実行していますが、いずれかのサーバーで動作しなくなりました(他のすべてのサーバーで完全に正常に動作します)。
スクリプトの問題部分は次のとおりです(私は自分で書きませんでした。すべてのクレジットは「リッチ」になります)(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以上の数でも問題を引き起こすため、完全に削除する方が安全です。