Saya mengalami masalah yang agak aneh, saya menjalankan skrip (Bash) di beberapa server dan berhenti bekerja di salah satu server (berfungsi dengan sangat baik di semua server lain).
Inilah bagian masalah dari skrip: (Saya tidak menulisnya sendiri, semua kredit menjadi "Kaya") ( http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- dan-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
Pesan kesalahan lengkap:
./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
Jika Anda memerlukan info lebih lanjut, beri tahu saya dan saya akan mencoba menyediakannya secepat mungkin.
Hargai semua input :)
${result%%.*}
akan menjadi ekspansi yang benar untuk menghilangkan titik desimal di sini. Tetapi perhatikan bahwa halcut -c -2
itu juga akan menyebabkan masalah dengan angka 100 atau lebih, sehingga lebih aman untuk menjatuhkannya sepenuhnya.