具体脚本如下:
点击(此处)折叠或打开
- file=test.log
- #1、查找进程,获取进程id
- ret=`ps -ef |grep sa-test | grep -v grep`
- #echo $ret
- pid=`echo $ret|awk '{print $2}' `
- #echo $pid
- #2、获取进程堆内存信息
- jmap -heap $pid |grep -E "capacity|used" |grep = >$file
- {
- # 读取一行内容,并将读取的内容存入变量line1中
- read line1
- # 读取一行内容,并将读取的内容存入变量line2中
- read line2
- # 将这个代码块的标准输入指向变量file的值所代表的的文件
- } < $file
-
- echo $line1;
- echo $line2;
- total=`echo $line1|awk '{print $3}'`
- used=`echo $line2|awk '{print $3}'`
- echo $total $used
- val=`expr $total - $used`
- diff=10485760
- #3、比较剩余内存是否小10M
- if [ $val -lt $diff ]
- then
- echo 'restart'
- cd /sa-test
- sh sa-test-jar.sh restart
- else
- echo 'ok'
- fi