进程监控脚本

系统内存及cpu不稳定,脚本监控抓取相应的进程信息

描述:

虽然现在监控软件,开源的以及不开源的都很多,但是在一些特定场景下,避免不了使用最原始的脚本加定时任务的方式来获取操作系统信息,下面这个就是在工作中,为了快速定位问题,两分钟写的一个脚本,有兴趣的可以继续完善;

故障现象:

系统内存及cpu不稳定,不定时的会飙升至100%,但是每次影响业务之后进行检查时,系统性能又正常,难以捕获相应的进程信息。

注意点:

直接上脚本:

#!/bin/bash
step=1
for ((i =0;i<60;i++));
do 
date +%Y-%m-%d-%H:%M:%S >> /home/monitor1.log
echo 'USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND ' >> /home/monitor1.log
ps aux |sort -rn -k +3|grep -v 'CPU' |head -n 5 >> /home/monitor1.log
vmstat -t >> /home/monitor1.log
echo -e '\n' >>/home/monitor1.log
sleep $step
done
exit 0

设置定时任务:

crontab -e
*/1 * * * * /home/monitor.sh > /home/monitor.log 2>&1 &
具体脚本的执行频率要跟进业务量大小以及临时文件的大小来决定
重启定时任务:
service crond restart

脚本2:
每秒监控系统性能,并监控系统占用的进程情况

#!/bin/bash
step=1
for ((i =0;i<60;i++));
do
date +%Y-%m-%d-%H:%M:%S >> /home/monitor1.log
ps aux |sort -rn -k +3|grep -v 'CPU' |head -n 5 >> /home/monitor1.log
vmstat -t >> /home/monitor1.log
sleep $step
done
exit 0  

注:此脚本同样解决crontab定时任务只能精确到秒的限制。

补充:

发布了36 篇原创文章 · 获赞 46 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_31457413/article/details/98945430