У мене досить дивна проблема, я запускаю скрипт (Bash) на декількох серверах, і він перестав працювати на одному з серверів (прекрасно працює на всіх інших серверах).
Ось проблемна частина сценарію: (я не писав його сам, усі кредити переходять до "Річ") ( http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- і-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 і більше, тому безпечніше його повністю відкинути.