Tôi đang gặp một vấn đề khá kỳ lạ, tôi đang chạy một tập lệnh (Bash) trên nhiều máy chủ và nó đã ngừng hoạt động trên một trong các máy chủ (hoạt động hoàn toàn tốt trên tất cả các máy chủ khác).
Đây là phần vấn đề của kịch bản: (Tôi không tự viết, tất cả các khoản tín dụng đều chuyển đến "Giàu có") ( http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- và-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
Thông báo lỗi hoàn chỉnh:
./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
Nếu bạn cần thêm thông tin, hãy cho tôi biết và tôi sẽ cố gắng cung cấp nó nhanh nhất có thể.
Đánh giá cao tất cả các đầu vào :)
${result%%.*}
sẽ là sự mở rộng chính xác để loại bỏ dấu thập phân ở đây. Nhưng lưu ý rằng điềucut -c -2
này cũng sẽ gây ra các vấn đề với số lượng từ 100 trở lên, vì vậy sẽ an toàn hơn khi bỏ nó hoàn toàn.