外壳脚本不起作用


cpu= $(mpstat | awk '$12 ~ /[0-9.]+/ { printf("%d%%",100 - $12) }' | cut -d. -f1)

如何避免数字输出?

将字符串与数字进行比较时%失败。

不要将%放在awk输出中。在创建电子邮件时添加它。您还可以使用 awk 的int()函数从输出中删除分数,而不是通过管道连接到cut

此外,请确保cpu分配中的=周围没有任何空格。

cpu=$(mpstat | awk '$12 ~ /[0-9.]+/ {print int(100 - $12) }')
if (( $cpu > 5 ))
then mail -s "CPU Utilization monitoring" "xxx@yyy.com" <<EOF
CPU Utilization is exceeded in Ec2-user Server.
Current use is $cpu%.
EOF
fi