思路:
1.如何取出当前的使用率:百分比=====使用的除总数乘100
2.条件表达式 整数的比较
3.输出结果到文本
4.调试
脚本如下:
#!/bin/bash
#取出系统内存的使用率,等于使用的除以总数乘100
v=`free -m | awk 'NR==2{print $3/$2*100}'`
#echo $v
#使用率与10%进行比较,先将小数的整数部分提出出来,然后取整进行比较
v_int=`echo ${v%.*}`
[ $v_int -gt 10 ] && echo "系统内存使用率超过了10%,使用率为$v_int%" >> `date +%s`.log || echo "使用率没有超过10%"
cat `date +%s`.log
执行结果如下:
优化:如果内存的使用率刚好为10.*%多,怎么进行比较,就不可以使用取整进行比较。
优化之后脚本:
1 #!/bin/bash
2 #取出系统内存的使用率,等于使用的除以总数乘100
3 v=`free -m | awk 'NR==2{print $3/$2*100}'`
4 #echo $v
5
6 #使用率与10%进行比较,设计到小数,取整进行比较
7 #v_int=`echo ${v%.*}`
8 #[ $v_int -gt 10 ] && echo "系统内存使用率超过了10%,使用率为$v_int%" >> `date +%s`.log || echo "使用率没有超过10%"
9 #cat `date +%s`.log
10
11
12 [ `echo "$v > 10" |bc` -eq 1 ] && echo "系统内存使用率超过了10%,使用率为$v%" >> `date +%s`.log || echo "使用率没有超过10%"
13 cat `date +%s`.log