ฉันมีปัญหาค่อนข้างแปลกฉันกำลังเรียกใช้สคริปต์ (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 หรือมากกว่านั้นจึงปลอดภัยกว่าที่จะปล่อยให้มันสมบูรณ์