- #!/bin/bash
- #
- # 监控内存使用状态 以便做出响应,可以添加到/etc/rc.local中作为守护进程脚本运行
- #
- # free# total used free shared buffers cached
- # Mem: 2074716 702972 1371744 0 123612 478028
- # -/+ buffers/cache: 101332 1973384
- # Swap: 4088532 0 4088532
- #
- MINRATIO="0.05"
- #while true
- while :
- do
- MemTotal=`free|grep "Mem"|awk '{ print $2 }'`
- MemFree=`free|grep "Mem"|awk '{ print $4 }'`
- Result=`echo | awk '{ print "'$MemFree'" / "'$MemTotal'" }'`
- RetVal=`awk 'BEGIN { print ("'$Result'" < "'$MINRATIO'"); }'`
- if [ ${RetVal} -eq 1 ]; then
- # echo "Restart Apache"
- /usr/local/apache/bin/apachectl restart
- fi
- sleep 60
- done
注意:awk中变量的使用
一:"'$var'"
这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:
- var="test"
- awk 'BEGIN{print "'$var'"}'
这种写法其实际是双括号变为单括号的常量,传递给了awk.
如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:
- var="this is a test"
- awk 'BEGIN{print "'"$var"'"}'
二:'"$var"'
这种写法与上一种类似.如果变量含空格,则变为'""$var""'较为可靠.
三.把括起awk程序的''变为"",使用"$var"
如:
- $var="this is a test"
- awk 'BEGIN{print "$var"}"
这是因为在""里$是特殊字符,而在''里$是普通字符.
四:export 变量,使用ENVIRON["var"]形式,
如:
- $var="this is a test";export $var
- awk 'BEGIN{print ENVIRON["var"]}'
五:当然也可以使用-v选项
如:
- $var="this is a test"
- awk -vnvar="$var" '{print nvar}'
这样便把系统变量定义成了awk变量.
本日志由 flyinweb 于 2009-07-05 20:04:20 发表,目前已经被浏览 4236 次,评论 0 次;
引用通告:http://www.517sou.net/Article/129/Trackback.ashx
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱
http://www.2mysite.net/scriptencoder/screnc.asp 站长你好,看
你好,我发现一个问题,就是从mysqld2同步过来的数据,在mysqld1的
晕,我说是怎么回事情,原来我和你一样,忘记设置了活动分区