shell 脚本

1.通过 shell 脚本监控 PID 的内存,cpu 使用情况

最近管理服务器,遇到很多问题。

服务器无故死机,为了查明具体原因,自己通过写脚本来监控内存,cpu 使用情况;

#!/bin/bash
while true

do

###开始获取内存信息###################################################
total=$(free -m | sed -n '2p' | awk '{print $2}')
used=$(free -m | sed -n '2p' | awk '{print $3}')
free=$(free -m | sed -n '2p' | awk '{print $4}')
shared=$(free -m | sed -n '2p' | awk '{print $5}')
buff=$(free -m | sed -n '2p' | awk '{print $6}')
cached=$(free -m | sed -n '2p' | awk '{print $7}')
echo "" >> memory_log_err.log
echo "" >> memory_log_err.log
starttime=$(date +%Y-%m-%d\ %H:%M:%S)=====***********=======**************=====memory===start=================
echo $starttime >> memory_log_err.log

rate=`echo "scale=2;$used/$total" | bc | awk -F. '{print $2}'`
echo -e "total\tused\tfree\tshared\tbuffer\tavailable" >> memory_log_err.log
echo -e "${total}M\t${used}M\t${free}M\t${shared}M\t${buff}M\t${cached}M\nrate:${rate}%" >> memory_log_err.log
####打印 memory 具体信息##################################################################
if    [ $rate -gt 60 ]
then    

# echo "内存有危险!!!!Memory Warn!!warn!!!!!!warn!!!!!!!!warning!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> memory_log_err.log
#    ps aux | grep -v USER | sort -rn -k4 | head >> memory_log_err.log
echo "--------------cpu----linux下获取占用CPU资源最多的10个进程-----------------------------" >> memory_log_err.log
echo "USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND" >> memory_log_err.log
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head >> memory_log_err.log
echo "" >> memory_log_err.log

echo "--------------memory----linux下获取占用内存资源最多的10个进程--------------------------" >> memory_log_err.log
echo "USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND" >> memory_log_err.log
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head >> memory_log_err.log
echo "" >> memory_log_err.log

fi

###休眠时间判断######################################################
if [ $rate -lt 30 ]
 then sleep 100
elif [ $rate -ge 30 ] && [ $rate -lt 60 ]
 then sleep 60
elif [ $rate -ge 60 ] && [ $rate -lt 70 ]
 then sleep 30
elif [ $rate -ge 70 ] && [ $rate -lt 80 ]
 then sleep 5
elif [ $rate -ge 80 ] && [ $rate -lt 85 ]
 then sleep 2
else 
 echo "内存有危险!!!!Memory Warn!!warn!!!!!!warn!!!!!!!!warning!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> memory_log_err.log
sleep 1
fi

done

注意 : (1)yum  install bc               (2)  启动脚本,后台运行,关闭窗口也会运行  sh  **.sh &  

                (3)  ps -ef | grep sh             (4) kill -9 PID    关掉执行脚本

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值