CPU負荷が高いときに電子メールを送信するように端末に1行のコードを書きたいです。私はこれを持っていますが、実行するたびに送信されます。
while true; do
lsof -u nagios | wc -l;
b=15;
a=$(uptime | awk '{print $10}' | cut -d ',' -f1);
uptime;
if echo $a $b | awk '{exit $1>$2?0:1}'; then
echo "DAL MCOM Nagios Load" | mailx -s "Load is greater than 15 $a" hai.le@xxx;
fi;
sleep 10;
done
端末でこれを行いたいです。
答え1
ロードが 3 以上のときにメールが欲しいとしましょう。
max=3; load=$(cat /proc/loadavg | cut -d' ' -f1); [[ "${load%.*}" -ge "$max" ]] && mail -s "Load exceeded $max on $(hostname -s)" [email protected]