监控脚本——检测进程内存变化

复制代码
#!/bin/bash
self_pid=$$
echo $self_pid
count=`ps axu |grep -E ${1}|grep -E ${0} |grep -v grep |grep -v ${self_pid}|wc -l`
echo $count
if [ $count -ne 1 ]
then
    echo $(ps aux|grep -E ${1}|grep -E ${0}|grep -v grep|grep -v ${self_pid})
    ps axu |grep -E $1 |grep -E $0 |grep -v grep |grep -v $self_pid |awk '{print $2}'|xargs kill -9
fi
res=record_$1_res.csv
virt=record_$1_virt.csv
echo $res
echo $virt
>$res
>$virt
for ((;;))
do  
    top -n 1 b|grep $1|grep -v logfork  |awk '{print $5}'|sed 's#[a-z]##g' >>$virt
    top -n 1 b|grep $1|grep -v logfork  |awk '{print $6}'|sed 's#[a-z]##g' >>$res
    sleep 3
done
复制代码

sh record.sh bin

 

复制代码
#!/bin/bash
PROCESS=进程名
LOG="/mnt/memlog.txt"
sleep 10
#删除上次的监控文件
if [ -f "$LOG" ];then
rm "$LOG"
fi
#过滤出需要的进程ID
PID=$(ps | grep $PROCESS | grep -v 'grep' | awk '{print $1;}')
while [ "$PID" != "" ]
do
cat /proc/$PID/status | grep RSS >> "$LOG"#过滤出VmRSS行
sleep 5
PID=$(ps | grep $PROCESS | grep -v 'grep' | awk '{print $1;}')
done
复制代码

 

posted @   鸭子船长  阅读(817)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-05-20 包管理和环境管理软件Anaconda
2017-05-20 startActivity启动过程分析(转)
2017-05-20 进程篇—进程整理(转)
点击右上角即可分享
微信分享提示