Mam dość dziwny problem, uruchamiam skrypt (Bash) na wielu serwerach i przestał on działać na jednym z serwerów (działa idealnie na wszystkich innych serwerach).
Oto część problemu w skrypcie: (nie napisałem go sam, wszystkie napisy trafiają do „Rich”) ( http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- i-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
Pełny komunikat o błędzie:
./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
Jeśli potrzebujesz więcej informacji, daj mi znać, a ja postaram się je jak najszybciej dostarczyć.
Doceń wszystkie dane wejściowe :)
${result%%.*}byłoby poprawnym rozwinięciem, aby usunąć tutaj przecinek dziesiętny. Pamiętaj jednak, żecut -c -2spowoduje to również problemy z liczbą 100 lub więcej, więc bezpieczniej jest całkowicie ją upuścić.