系统内存及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定时任务只能精确到秒的限制。
补充:
无