lunix脚本进程挂掉时显示cpu和内存信息及挂掉的…

2019-04-29 08:49:19来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

#!/bin/sh
while [ true ]; do

#查询是否有8899正在运行的进程
netstat -an|grep 8899
if [ $? -ne 0 ]
then
nowtime=$(date +%Y-%m-%d\ %H:%M:%S)
echo "end process.....">> issuemonitor.bat

#check memory used rate

#|代表同时满足后面的信息  awk '{print $2}' 代表显示第二列 |sed -n '2p'  代表显示第2行

 

totalMemory=$(free -m|awk '{print $2}'|sed -n '2p')

##|代表过滤掉后面的信息  awk '{print $3}' 代表显示第三列 |sed -n '3p'  代表显示第3行

usedMemory=$(free -m|awk '{print $3}'|sed -n '3p')

freeMemory=$(free -m|awk '{print $4}'|sed -n '3p')

usedPerMemory=$(awk 'BEGIN{printf "%.0f",('$usedMemory'/'$totalMemory')*100}')
freePerMemory=$(awk 'BEGIN{printf "%.0f",('$freeMemory'/'$totalMemory')*100}')

minfo="totalMemory:$totalMemory MB,used:$usedMemory MB,free:$freeMemory MB,usedPercent:$usedPerMemory%,freePrecent:$freePerMemory%"
echo "$nowtime $minfo Memory used" >> issuemonitor.bat

#check cpu usedrate

top -m >> issuemonitor.bat
break
else
nowtime=$(date +%Y-%m-%d\ %H:%M:%S)
echo $nowtime >> issuemonitor.bat
echo "runing....." >> issuemonitor.bat

#代表8899下的所有的进程号   grep -v 是反向查找的意思 grep -v "$0" 代表不包含第一行
ID=`lsof -i:8899 | grep -v "$0"|grep -v "PID" | grep -v "grep" | awk '{print $2}'`
for id in $ID
do
jstack $id >> issuemonitor.bat
done

fi
sleep 5
done


原文链接:https://www.cnblogs.com/zcg1051980588/p/10788667.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:sed 命令

下一篇:CentOS 本地和网络yum源简单说明及配置