lunix脚本进程挂掉时显示cpu和内存信息及挂掉的时间
#!/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
最新文章
- java中文乱码解决之道(四)-----java编码转换过程
- 关于history的Linux命令行
- Python—sqlalchemy
- 10个php笔试题
- centos重启不能自动联网的解决方法
- Java基础(4):Scanner输入的典型应用
- 160928、JQuery解析XML数据的demo
- BestCoder Round #85 hdu5776 sum
- Java里的IO流里的FileReader里的BufferedReader读取并在前打印行数!
- MVC中的路由
- vim 中按键映射问题
- USACO Section 1.2 Milking Cows 解题报告
- 关于data-xxx属性大小写不敏感,不识别大写的几点总结
- .Net中的装箱和拆箱
- Jupyter notebook安装扩展插件
- Javascript面向对象基础(二)
- Java编程的逻辑 (83) - 并发总结
- 黄聪:CR2格式批量转换JPG(美图看看)
- Alpha 冲刺 (3/10)
- 使用gitlab, jenkins搭建CI(持续集成)系统(4) 灰度发布publish