Sto riscontrando un problema piuttosto strano, sto eseguendo uno script (Bash) su più server e ha smesso di funzionare su uno dei server (funziona perfettamente su tutti gli altri server).
Ecco la parte problematica dello script: (non l'ho scritto da solo, tutti i crediti vanno a "Rich") ( http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- e-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
Messaggio di errore completo:
./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
Se hai bisogno di maggiori informazioni, fammi sapere e cercherò di fornirle il più velocemente possibile.
Apprezzo tutti gli input :)
${result%%.*}sarebbe l'espansione corretta per rimuovere il punto decimale qui. Ma nota checut -c -2causerà anche problemi con numeri di 100 o più, quindi è più sicuro lasciarlo cadere completamente.